module FreeImage::Information

  1. lib/free-image/modules/information.rb

Once a bitmap is loaded into memory, you can use the following methods to retrieve information about is type, dimensions, colors, etc.

Public Instance Aliases

Public Instance methods

background_color ()

Returns the background color of a bitmap. For 8-bit images, the color index in the palette is returned in the rgbReserved member of the bkcolor parameter.

[show source]
# File lib/free-image/modules/information.rb, line 86
def background_color
  ptr = FFI::MemoryPointer.new(:pointer)
  FreeImage.FreeImage_GetBackgroundColor(self, ptr)
  FreeImage.check_last_error
  RGBQuad.new(ptr)
end
background_color= (value)

Set the background color of a bitmap. The color should be an instance of RGBQuad.

When saving an image to PNG, this background color is transparently saved to the PNG file. When the bkcolor parameter is nil, the background color is removed from the image.

[show source]
# File lib/free-image/modules/information.rb, line 99
def background_color=(value)
  result = FreeImage.FreeImage_GetBackgroundColor(self, value)
  FreeImage.check_last_error
  if !result
    raise(RuntimeError, "Could not save background color")
  end
end
bits_per_pixel ()

Returns the size of one pixel in the bitmap in bits. For example if each pixel takes 32-bits of space in the bitmap, this function returns 32. Possible bit depths are 1, 4, 8, 16, 24, 32 for standard bitmaps and 16-, 32-, 48-, 64-, 96- and 128-bit for non standard bitmaps

[show source]
# File lib/free-image/modules/information.rb, line 111
def bits_per_pixel
  result = FreeImage.FreeImage_GetBPP(self)
  FreeImage.check_last_error
  result
end
blue_mask ()

Returns a bit pattern describing the blue color component of a pixel in a bitmap.

[show source]
# File lib/free-image/modules/information.rb, line 119
def blue_mask
  result = FreeImage.FreeImage_GetBlueMask(self)
  FreeImage.check_last_error
  result
end
color_type ()
[show source]
# File lib/free-image/modules/information.rb, line 125
def color_type
  result = FreeImage.FreeImage_GetColorType(self)
  FreeImage.check_last_error
  result
end
dib_size ()

Returns the size of the DIB-element of a bitmap in memory, which is the header size + palette size + data bits. Note that this is not the real size of a bitmap, just the size of its DIB-element.

[show source]
# File lib/free-image/modules/information.rb, line 134
def dib_size
  result = FreeImage.FreeImage_GetDIBSize(self)
  FreeImage.check_last_error
  result
end
dots_per_meter_x ()

Returns the horizontal resolution, in pixels-per-meter, of the target device for the bitmap.

[show source]
# File lib/free-image/modules/information.rb, line 142
def dots_per_meter_x
  result = FreeImage.FreeImage_GetDotsPerMeterX(self)
  FreeImage.check_last_error
  result
end
dots_per_meter_x= (value)

Sets the horizontal resolution, in pixels-per-meter, of the target device for the bitmap.

[show source]
# File lib/free-image/modules/information.rb, line 150
def dots_per_meter_x=(value)
  result = FreeImage.FreeImage_SetDotsPerMeterX(self, value)
  FreeImage.check_last_error
  result
end
dots_per_meter_y ()

Returns the vertical resolution, in pixels-per-meter, of the target device for the bitmap.

[show source]
# File lib/free-image/modules/information.rb, line 158
def dots_per_meter_y
  result = FreeImage.FreeImage_GetDotsPerMeterY(self)
  FreeImage.check_last_error
  result
end
dots_per_meter_y= (value)

Sets the vertical resolution, in pixels-per-meter, of the target device for the bitmap.

[show source]
# File lib/free-image/modules/information.rb, line 166
def dots_per_meter_y=(value)
  result = FreeImage.FreeImage_SetDotsPerMeterY(self, value)
  FreeImage.check_last_error
  result
end
green_mask ()

Returns a bit pattern describing the green color component of a pixel in a bitmap.

[show source]
# File lib/free-image/modules/information.rb, line 173
def green_mask
  result = FreeImage.FreeImage_GetGreenMask(self)
  FreeImage.check_last_error
  result
end
has_background_color ()

Returns true when the image has a file background color, false otherwise

[show source]
# File lib/free-image/modules/information.rb, line 180
def has_background_color
  result = FreeImage.FreeImage_HasBackgroundColor(self)
  FreeImage.check_last_error
  result
end
has_pixels ()

Returns true if the bitmap contains pixel data, otherwise false. Bitmaps can be loaded using the FIF_LOAD_NOPIXELS load flag whic tells the decoder to read header data and available metadata and skip pixel data decoding. This reduces memory usage and load speed.

[show source]
# File lib/free-image/modules/information.rb, line 190
def has_pixels
  result = FreeImage.FreeImage_HasPixels(self)
  FreeImage.check_last_error
  result
end
has_rgb_masks ()
[show source]
# File lib/free-image/modules/information.rb, line 196
def has_rgb_masks
  result = FreeImage.FreeImage_HasRGBMasks(self)
  FreeImage.check_last_error
  result
end
height ()

Returns the height of the bitmap in pixel units

[show source]
# File lib/free-image/modules/information.rb, line 203
def height
  result = FreeImage.FreeImage_GetHeight(self)
  FreeImage.check_last_error
  result
end
image_type ()

Returns the image type of a bitmap.

[show source]
# File lib/free-image/modules/information.rb, line 210
def image_type
  result = FreeImage.FreeImage_GetImageType(self)
  FreeImage.check_last_error
  result
end
info_header ()
[show source]
# File lib/free-image/modules/information.rb, line 216
def info_header
  result = FreeImage::InfoHeader.new(FreeImage.FreeImage_GetInfoHeader(self))
  FreeImage.check_last_error
  result
end
line ()

Returns the width of the bitmap in bytes. See also #pitch. There has been some criticism on the name of this function. Some people expect it to return a scanline in the pixel data, while it actually returns the width of the bitmap in bytes. As far as I know the term Line is common terminology for the width of a bitmap in bytes. It is at least used by Microsoft DirectX.

[show source]
# File lib/free-image/modules/information.rb, line 227
def line
  result = FreeImage.FreeImage_GetLine(self)
  FreeImage.check_last_error
  result
end
palette ()

Returns a bitmap's palette. If the bitmap doesn’t have a palette (i.e. when the pixel bit depth is greater than 8), this return nil.

[show source]
# File lib/free-image/modules/information.rb, line 235
def palette
  @palette ||= Palette.new(self)
end
pitch ()

Returns the width of the bitmap in bytes, rounded to the next 32-bit boundary, also known as pitch or stride or scan width. In FreeImage each scanline starts at a 32-bit boundary for performance reasons. This accessor is essential when using low level pixel manipulation functions.

[show source]
# File lib/free-image/modules/information.rb, line 244
def pitch
  result = FreeImage.FreeImage_GetPitch(self)
  FreeImage.check_last_error
  result
end
red_mask ()

Returns a bit pattern describing the red color component of a pixel in a bitmap.

[show source]
# File lib/free-image/modules/information.rb, line 251
def red_mask
  result = FreeImage.FreeImage_GetRedMask(self)
  FreeImage.check_last_error
  result
end
transparency_count ()

Returns the number of transparent colors in a palletized bitmap, otherwise returns 0.

[show source]
# File lib/free-image/modules/information.rb, line 259
def transparency_count
  result = FreeImage.FreeImage_GetTransparencyCount(self)
  FreeImage.check_last_error
  result
end
transparent ()

Returns true if the transparency table is enabled (1-, 4- or 8-bit images) or when the input dib contains alpha values (32-bit images, RGBA16 or RGBAF images). Returns false otherwise.

[show source]
# File lib/free-image/modules/information.rb, line 268
def transparent
  result = FreeImage.FreeImage_IsTransparent(self)
  FreeImage.check_last_error
  result
end
transparent= (value)

Tells FreeImage if it should make use of the transparency table or the alpha channel that may accompany a bitmap. When calling this function with a bitmap whose bitdepth is different from 1-, 4-, 8- or 32-bit, transparency is disabled whatever the value of the Boolean parameter.

[show source]
# File lib/free-image/modules/information.rb, line 278
def transparent=(value)
  result = FreeImage.FreeImage_SetTransparent(self, value)
  FreeImage.check_last_error
  result
end
transparent_index ()

Returns the palette entry used as transparent color for the image specified. Works for palletised images only and returns -1 for high color images or if the image has no color set to be transparent. Although it is possible for palletised images to have more than one transparent color, this function always returns the index of the first palette entry, set to be transparent.

[show source]
# File lib/free-image/modules/information.rb, line 290
def transparent_index
  result = FreeImage.FreeImage_GetTransparentIndex(self)
  FreeImage.check_last_error
  result
end
transparent_index= (value)

Sets the index of the palette entry to be used as transparent color for the image specified. This works on palletised images only and does nothing for high color images.

Although it is possible for palletised images to have more than one transparent color, this method sets the palette entry specified as the single transparent color for the image. All other colors will be set to be non-transparent by this method.

As with FreeImage::Bitmap.transparency_table=, this method also sets the image's transparency property to true for palletised images.

[show source]
# File lib/free-image/modules/information.rb, line 306
def transparent_index=(value)
  result = FreeImage.FreeImage_SetTransparentIndex(self, value)
  FreeImage.check_last_error
  result
end
width ()

Returns the width of the bitmap in pixel units

[show source]
# File lib/free-image/modules/information.rb, line 317
def width
  result = FreeImage.FreeImage_GetWidth(self)
  FreeImage.check_last_error
  result
end