Difference between revisions of "Structures"
From XnView Wiki
(Created page with '== GFL_BITMAP == The GFL_BITMAP structure contains all informations about picture in memory. typedef struct ( GFL_BITMAP_TYPE Type, GFL_ORIGIN Origin, &nbs…') |
|||
(11 intermediate revisions by 2 users not shown) | |||
Line 3: | Line 3: | ||
The GFL_BITMAP structure contains all informations about picture in memory. | The GFL_BITMAP structure contains all informations about picture in memory. | ||
struct <b>GFL_BITMAP</b> ( | |||
GFL_BITMAP_TYPE Type | |||
GFL_ORIGIN Origin | |||
GFL_INT32 Width | |||
GFL_INT32 Height | |||
GFL_UINT32 BytesPerLine | |||
GFL_INT16 LinePadding | |||
GFL_UINT16 BitsPerComponent | |||
GFL_UINT16 ComponentsPerPixel | |||
GFL_UINT16 BytesPerPixel | |||
GFL_UINT16 Xdpi | |||
GFL_UINT16 Ydpi | |||
GFL_INT16 TransparentIndex | |||
GFL_INT16 Reserved | |||
GFL_INT32 ColorUsed | |||
GFL_COLORMAP* ColorMap | |||
GFL_UINT8* Data | |||
char* Comment | |||
} | void* MetaData | ||
GFL_INT32 XOffset | |||
GFL_INT32 YOffset | |||
char* Name | |||
} | |||
'''Members''' | '''Members''' | ||
Line 34: | Line 38: | ||
|GFL_COLORS || 0x0004 || Colors with colormap | |GFL_COLORS || 0x0004 || Colors with colormap | ||
|- | |- | ||
|GFL_RGB || | |GFL_RGB || 0x0010 || TrueColors - Red/Green/Blue | ||
|- | |- | ||
|GFL_RGBA || 0x0020 || TrueColors - Red/Green/Blue/Alpha | |GFL_RGBA || 0x0020 || TrueColors - Red/Green/Blue/Alpha | ||
Line 88: | Line 92: | ||
::Address of a string used by the comment. You must use gflSetComment to change the comment. | ::Address of a string used by the comment. You must use gflSetComment to change the comment. | ||
:MetaData | :MetaData | ||
::Pointer of Metadata. You must use gflBitmapGetIPTC & gflBitmapGetEXIF to obtain readable data. | ::Pointer of Metadata. You must use gflBitmapGetIPTC & gflBitmapGetEXIF to obtain readable data. | ||
== GFL_COLORMAP == | == GFL_COLORMAP == | ||
Line 95: | Line 98: | ||
The GFL_COLORMAP structure is used for colormap. | The GFL_COLORMAP structure is used for colormap. | ||
struct <b>GFL_COLORMAP</b> ( | |||
GFL_UINT8 Red[256] | |||
GFL_UINT8 Green[256] | |||
GFL_UINT8 Blue[256] | |||
} | } | ||
'''Members''' | '''Members''' | ||
Line 115: | Line 118: | ||
The GFL_FORMAT_INFORMATION structure contains informations about a format available in GFL. | The GFL_FORMAT_INFORMATION structure contains informations about a format available in GFL. | ||
struct <b>GFL_FORMAT_INFORMATION</b> ( | |||
GFL_INT32 Index | |||
GFL_ORIGIN Name[8] | |||
char Description[64] | |||
GFL_UINT32 Status | |||
GFL_UINT32 NumberOfExtension | |||
char Extension[16][8] | |||
} | } | ||
'''Members''' | '''Members''' | ||
Line 146: | Line 149: | ||
The GFL_FILE_INFORMATION structure contains informations about a picture's file. | The GFL_FILE_INFORMATION structure contains informations about a picture's file. | ||
struct <b>GFL_FILE_INFORMATION</b> ( | |||
GFL_BITMAP_TYPE Type | |||
GFL_ORIGIN Origin | |||
GFL_INT32 Width | |||
GFL_INT32 Height | |||
GFL_INT32 FormatIndex | |||
char FormatName[8] | |||
char Description[64] | |||
GFL_UINT16 Xdpi | |||
GFL_UINT16 Ydpi | |||
GFL_UINT16 BitsPerComponent | |||
GFL_UINT16 ComponentsPerPixel | |||
GFL_INT32 NumberOfImages | |||
GFL_UINT32 FileSize | |||
GFL_COLORMODEL ColorModel | |||
GFL_COMPRESSION Compression | |||
char CompressionDescription[64] | |||
} | GFL_INT32 XOffset | ||
GFL_INT32 YOffset | |||
void* ExtraInfos | |||
} | |||
'''Members''' | '''Members''' | ||
Line 256: | Line 262: | ||
== GFL_LOAD_PARAMS == | |||
GFL_LOAD_PARAMS | |||
The GFL_LOAD_PARAMS structure contains options for picture loading. | The GFL_LOAD_PARAMS structure contains options for picture loading. | ||
struct <b>GFL_LOAD_PARAMS</b> ( | |||
GFL_UINT32 Flags | |||
GFL_INT32 FormatIndex | |||
GFL_INT32 ImageWanted | |||
GFL_ORIGIN Origin | |||
GFL_BITMAP_TYPE ColorModel | |||
GFL_UINT32 LinePadding | |||
GFL_UINT8 DefaultAlpha | |||
GFL_UINT8 PsdNoAlphaForNonLayer | |||
GFL_UINT8 PngComposeWithAlpha | |||
GFL_UINT8 WMFHighResolution | |||
GFL_INT32 Width | |||
GFL_INT32 Height | |||
GFL_UINT32 Offset | |||
GFL_CORDER ChannelOrder | |||
GFL_CTYPE ChannelType | |||
GFL_UINT16 PcdBase | |||
GFL_UINT16 EpsDpi | |||
GFL_INT32 EpsWidth | |||
GFL_INT32 EpsHeight | |||
GFL_LUT_TYPE LutType | |||
GFL_UINT16 Reserved | |||
GFL_UINT16* LutData | |||
const char* LutFilename | |||
GFL_UINT8 CameraRawUseAutomaticBalance | |||
GFL_UINT8 CameraRawUseCameraBalance | |||
GFL_UINT8 CameraRawHighlight | |||
GFL_UINT8 CameraRawAutoBright | |||
float CameraRawGamma | |||
float CameraRawBrightness | |||
float CameraRawRedScaling | |||
float CameraRawBlueScaling | |||
GFL_LOAD_CALLBACKS Callbacks | |||
void* UserParams | |||
} | |||
'''Members''' | |||
:Flags | |||
::Options | |||
::{| | |||
|GFL_LOAD_SKIP_ALPHA || If the picture has an alpha channel, it is ignored | |||
|- | |||
|GFL_LOAD_IGNORE_READ_ERROR || Ignore all read errors | |||
|- | |||
|GFL_LOAD_BY_EXTENSION_ONLY || Use only extension to recognize the filetype | |||
|- | |||
|GFL_LOAD_READ_ALL_COMMENT || Read all comment in the file | |||
|- | |||
|GFL_LOAD_FORCE_COLOR_MODEL || ColorModel is used for the picture type | |||
|- | |||
|GFL_LOAD_PREVIEW_NO_CANVAS_RESIZE || Keep the ratio for the preview | |||
|- | |||
|GFL_LOAD_BINARY_AS_GREY || Load a binary file in 8bits | |||
|- | |||
|GFL_LOAD_ORIGINAL_COLORMODEL || If the color model of the file is CMYK, so the picture loaded will be in CMYK | |||
|- | |||
|GFL_LOAD_ONLY_FIRST_FRAME || If the color model of the file is CMYK, so the picture loaded will be in CMYK | |||
|- | |||
|GFL_LOAD_ORIGINAL_DEPTH || If the file has more than 8 bits per component, keep it | |||
|- | |||
|GFL_LOAD_METADATA || Read all metadata (IPTC & EXIF) | |||
|- | |||
|GFL_LOAD_COMMENT || Read comment | |||
|- | |||
|GFL_LOAD_HIGH_QUALITY_THUMBNAIL || Use high quality for gflLoadThumbnail | |||
|} | |||
:FormatIndex | |||
::Index of the format used to load. | |||
::Default value : -1 (for an automatic recognition). | |||
:ImageWanted | |||
::For a multi-page file, identifies the image number. | |||
::Default value : 0 | |||
:Origin | |||
::Origin wanted. | |||
::{| | |||
|GFL_TOP_LEFT || Top left | |||
|- | |||
|GFL_BOTTOM_LEFT || Bottom left | |||
|- | |||
|GFL_TOP_RIGHT || Top right | |||
|- | |||
|GFL_BOTTOM_RIGHT || Bottom right | |||
|} | |||
::Default value : GFF_TOP_LEFT | |||
:ColorModel | |||
::Color Model wanted. | |||
::{| | |||
|GFL_RGB || True colors - Red/Green/Blue (24 bits) | |||
|- | |||
|GFL_BGR || True colors - Blue/Green/Red (24 bits) | |||
|- | |||
|GFL_RGBA || True colors - Red/Green/Blue/Alpha (32 bits) | |||
|- | |||
|GFL_ABGR || True colors - Alpha/Blue/Green/Red (32 bits) | |||
|- | |||
|GFL_BGRA || True colors - Blue/Green/Red/Alpha (32 bits) | |||
|- | |||
|GFL_ARGB || True colors - Red/Green/Blue/Alpha (32 bits) | |||
|} | |||
::Default value : GFL_RGB | |||
:LinePadding | |||
::Pad for a pixels line (For example, a value of 4 allow a line padding on 32bits). | |||
::Default value : 1 | |||
:DefaultAlpha | |||
::Alpha value to use when the picture is loaded in 32bits, but the original file doesn't have an alpha. | |||
::Default value: Black | |||
:Width | |||
::For RAW or YUV format, width of picture. | |||
:Height | |||
::For RAW or YUV format, height of picture. | |||
:Offset | |||
::For RAW or YUV format, offset of the picture in the file. | |||
:ChannelOrder | |||
::For RAW format, channel order of the components. GFL_CORDER_INTERLEAVED :Interleaved | |||
::{| | |||
|GFL_CORDER_SEQUENTIAL || Sequential | |||
|- | |||
|GFL_CORDER_SEPARATE || Separate | |||
|} | |||
:ChannelType | |||
::For RAW format, channel type of the components. | |||
::{| | |||
|GFL_CTYPE_GREYSCALE || Greyscale | |||
|- | |||
|GFL_CTYPE_RGB || Red-Green-Blue | |||
|- | |||
|GFL_CTYPE_BGR || Blue-Green-Red | |||
|- | |||
|GFL_CTYPE_RGBA || Red-Green-Blue-Alpha | |||
|- | |||
|GFL_CTYPE_ABGR || Alpha-Blue-Green-Red | |||
|- | |||
|GFL_CTYPE_CMY || Cyan-Magenta-Yellow | |||
|- | |||
|GFL_CTYPE_CMYK || Cyan-Magenta-Yellow-Black | |||
|} | |||
:PcdBase | |||
::For PCD format, it's the base used. | |||
::{| | |||
|0 || 192x144 | |||
|- | |||
|1 || 384x288 | |||
|- | |||
|2 || 768x576 | |||
|} | |||
:EpsDpi | |||
::For PS/EPS format, dpi to be used for loading. | |||
:EpsWidth | |||
::For PS/EPS format, width to be used for loading. | |||
:EpsHeight | |||
::For PS/EPS format, height to be used for loading. | |||
:Callbacks | |||
::A [[Structures#GFL_LOAD_CALLBACKS|GFL_LOAD_CALLBACKS]] structure | |||
== GFL_SAVE_PARAMS == | |||
The GFL_SAVE_PARAMS structure contains options for the save of picture. | |||
struct <b>GFL_SAVE_PARAMS</b> ( | |||
GFL_UINT32 Flags | |||
GFL_INT32 FormatIndex | |||
GFL_COMPRESSION Compression | |||
GFL_INT16 Quality | |||
GFL_INT16 CompressionLevel | |||
GFL_BOOL Interlaced | |||
GFL_BOOL Progressive | |||
GFL_BOOL OptimizeHuffmanTable | |||
GFL_BOOL InAscii | |||
GFL_LUT_TYPE LutType | |||
GFL_UINT8 DpxByteOrder | |||
GFL_UINT8 CompressRatio | |||
GFL_UINT32 MaxFileSize | |||
GFL_UINT16* LutData | |||
const char* LutFilename | |||
GFL_UINT32 Offset | |||
GFL_CORDER ChannelOrder | |||
GFL_CTYPE ChannelType | |||
GFL_WRITE_CALLBACK Write | |||
GFL_TELL_CALLBACK Tell | |||
GFL_SEEK_CALLBACK Seek | |||
GFL_VIRTUAL_SAVE_CALLBACK GetLine | |||
void* GetLineParams | |||
void* UserParams | |||
} | |||
'''Members''' | |||
:Flags | |||
::Options | |||
::{| | |||
|GFL_SAVE_REPLACE_EXTENSION || Replace extension by the default format extension | |||
|- | |||
|GFL_SAVE_ANYWAY || Convert picture if colormode can be saved in this format (For example, RGB picture must be converted in 256 colors to save it in GIF) | |||
|} | |||
:FormatIndex | |||
::Index of format to be used. | |||
:Compression | |||
::{| | |||
|GFL_NO_COMPRESSION || No compression | |||
|- | |||
|GFL_RLE || Packbits | |||
|- | |||
|GFL_LZW || LZW (tiff only) | |||
|- | |||
|GFL_CCITT_FAX3 || Fax Group 3 (tiff only) | |||
|- | |||
|GFL_CCITT_FAX3_2D || Fax Group 3-2D (tiff only) | |||
|- | |||
|GFL_CCITT_FAX4 || Fax Group 4 (tiff only) | |||
|} | |||
:Quality | |||
::Quality of the compression (JPEG) | |||
::0: the worst, 100: the best | |||
:CompressionLevel | |||
::Level of compression (PNG). | |||
::1: minimum, 7: maximum | |||
:Interlaced | |||
::Interlaced mode (GIF). | |||
:Progressive | |||
::Progressive mode (JPEG). | |||
:OptimizeHuffmanTable | |||
::Optimize the Huffman table (JPEG). | |||
:InAscii | |||
::Use the ascii mode (PNM) | |||
:Offset | |||
::For RAW or YUV format, offset of the data start. | |||
:ChannelOrder | |||
::For RAW format, channel order of components. | |||
::{| | |||
|GFL_CORDER_INTERLEAVED || Interleaved | |||
|- | |||
|GFL_CORDER_SEQUENTIAL || Sequential | |||
|- | |||
|GFL_CORDER_SEPARATE || Separate | |||
|} | |||
:ChannelType | |||
::For RAW format, channel type of components. | |||
::{| | |||
|GFL_CTYPE_GREYSCALE || Greyscale | |||
|- | |||
|GFL_CTYPE_RGB || Red-Green-Blue | |||
|- | |||
|GFL_CTYPE_BGR || Bleu-Green-Red | |||
|- | |||
|GFL_CTYPE_RGBA || Red-Green-Bleu-Alpha | |||
|- | |||
|GFL_CTYPE_ABGR || Alpha-Bleu-Green-Red | |||
|- | |||
|GFL_CTYPE_CMY || Cyan-Magenta-Yellow | |||
|- | |||
|GFL_CTYPE_CMYK || Cyan-Magenta-Yellow-Black | |||
|} | |||
:Write | |||
::Pointer to a write user function. | |||
:Tell | |||
::Pointer to a tell user function. | |||
:Seek | |||
::Pointer to a seek user function. | |||
== GFL_RECT == | |||
The GFL_RECT structure define a rectangle. | |||
struct <b>GFL_RECT</b>( | |||
GFL_INT32 x | |||
GFL_INT32 y | |||
GFL_INT32 w | |||
GFL_INT32 h | |||
} | |||
'''Members''' | |||
:x | |||
::X position. | |||
:y | |||
::Y position. | |||
:w | |||
::Width. | |||
:h | |||
::Height. | |||
== GFL_COLOR == | |||
The GFL_COLOR structure allow to define a color. | |||
struct <b>GFL_COLOR</b> ( | |||
GFL_UINT16 Red | |||
GFL_UINT16 Green | |||
GFL_UINT16 Blue | |||
GFL_UINT16 Alpha | |||
} | |||
'''Members''' | |||
:Red | |||
::Define the red component. | |||
:Green | |||
::Define the green component. | |||
:Blue | |||
::Define the blue component. | |||
:Alpha | |||
::Define the alpha component. | |||
== GFL_POINT == | |||
The GFL_POINT structure allows to define a point. | |||
struct <b>GFL_POINT</b>( | |||
GFL_INT32 x | |||
GFL_INT32 y | |||
} | |||
'''Members''' | |||
:x | |||
::X position. | |||
:y | |||
::Y position. | |||
== GFL_FILTER == | |||
The GFL_FILTER structure allows to define a matrix for convolution (maximum 7x7). | |||
struct <b>GFL_FILTER</b>( | |||
GFL_INT16 Size | |||
GFL_INT16 Matrix[7*7] | |||
GFL_INT16 Divisor | |||
GFL_INT16 Bias | |||
} | |||
'''Members''' | |||
:Size | |||
::Define the width of the matrix (maximum 7). | |||
:Matrix | |||
::Define each values fo the matrix. | |||
:Divisor | |||
::Define the divisor to apply. | |||
:Bias | |||
::Define the bias to apply. | |||
'''Example''' | |||
:A "blur" matrix is defined like this: | |||
::Size = 3 | |||
::Matrix = (1 2 1 2 4 2 1 2 1) | |||
::Divisor = 16 | |||
::Bias = 0 | |||
== GFL_IPTC_DATA == | |||
struct GFL_IPTC_ENTRY { | |||
GFL_UINT32 Id | |||
const char* Name | |||
const char* Value | |||
} | |||
'''Members''' | |||
:Id | |||
::ID of the field | |||
:Name | |||
::Pointer to a null-terminated string of the field's name | |||
:Value | |||
::Pointer to a null-terminated string of the field's value | |||
struct GFL_IPTC_DATA { | |||
GFL_UINT32 NumberOfItems | |||
GFL_IPTC_ENTRY* ItemsList | |||
} | |||
'''Members''' | |||
:NumberOfItems | |||
::Number of iptc fields | |||
:ItemsList | |||
::List of iptc fields | |||
== GFL_EXIF_DATA == | |||
'''IFD''' | |||
:{| | |||
|GFL_EXIF_IFD_0 || 0x0001 | |||
|- | |||
|GFL_EXIF_MAIN_IFD || 0x0002 | |||
|- | |||
|GFL_EXIF_INTEROPERABILITY_IFD || 0x0004 | |||
|- | |||
|GFL_EXIF_IFD_THUMBNAIL || 0x0008 | |||
|- | |||
|GFL_EXIF_GPS_IFD || 0x0010 | |||
|- | |||
|GFL_EXIF_MAKERNOTE_IFD || 0x0020 | |||
|} | |||
'''Some tags''' | |||
:{| | |||
|GFL_EXIF_MAKER || 0x010F | |||
|- | |||
|GFL_EXIF_MODEL || 0x0110 | |||
|- | |||
|GFL_EXIF_ORIENTATION || 0x0112 | |||
|- | |||
|GFL_EXIF_EXPOSURETIME || 0x829A | |||
|- | |||
|GFL_EXIF_FNUMBER || 0x829D | |||
|- | |||
|GFL_EXIF_DATETIME_ORIGINAL || 0x9003 | |||
|- | |||
|GFL_EXIF_SHUTTERSPEED || 0x9201 | |||
|- | |||
|GFL_EXIF_APERTURE || 0x9202 | |||
|- | |||
|GFL_EXIF_MAXAPERTURE || 0x9205 | |||
|- | |||
|GFL_EXIF_FOCALLENGTH || 0x920A | |||
|} | |||
struct <b>GFL_EXIF_ENTRY</b> { | |||
GFL_UINT32 Flag /* EXIF_...IFD */ | |||
GFL_UINT32 Tag | |||
const char* Name | |||
const char* Value | |||
} | |||
struct <b>GFL_EXIF_DATA</b> { | |||
GFL_UINT32 NumberOfItems | |||
GFL_EXIF_ENTRY* ItemsList | |||
} | |||
== GFL_LOAD_CALLBACKS == | |||
struct <b>GFL_LOAD_CALLBACKS</b> { | |||
GFL_READ_CALLBACK Read | |||
GFL_TELL_CALLBACK Tell | |||
GFL_SEEK_CALLBACK Seek | |||
GFL_ALLOCATEBITMAP_CALLBACK AllocateBitmap | |||
} | void* AllocateBitmapParams | ||
GFL_PROGRESS_CALLBACK Progress | |||
void* ProgressParams | |||
GFL_WANTCANCEL_CALLBACK WantCancel | |||
void* WantCancelParams | |||
GFL_VIRTUAL_LOAD_CALLBACK SetLine | |||
void* SetLineParams | |||
} | |||
== GFL_EXIF_DATAEX == | |||
'''Tag format''' | |||
:{| | |||
|GFL_EXIF_BYTE || 1 | |||
|- | |||
|GFL_EXIF_STRING || 2 | |||
|- | |||
|GFL_EXIF_USHORT || 3 | |||
|- | |||
|GFL_EXIF_ULONG || 4 | |||
|- | |||
|GFL_EXIF_URATIONAL || 5 | |||
|- | |||
|GFL_EXIF_SBYTE || 6 | |||
|- | |||
|GFL_EXIF_UNDEFINED || 7 | |||
|- | |||
|GFL_EXIF_SSHORT || 8 | |||
|- | |||
|GFL_EXIF_SLONG || 9 | |||
|- | |||
|GFL_EXIF_SRATIONAL || 10 | |||
|- | |||
|GFL_EXIF_SINGLEF || 11 | |||
|- | |||
|GFL_EXIF_DOUBLE || 12 | |||
|} | |||
struct <b>GFL_EXIF_ENTRYEX</b> { | |||
GFL_UINT16 Tag | |||
GFL_UINT16 Format | |||
GFL_INT32 Ifd | |||
GFL_INT32 NumberOfComponents | |||
GFL_UINT32 Value | |||
GFL_INT32 DataLength | |||
char* Data | |||
GFL_EXIF_ENTRYEX* Next | |||
} | |||
struct <b>GFL_EXIF_DATAEX</b> { | |||
GFL_ENTRYEX* Root | |||
GFL_INT32 UseMsbf | |||
} | |||
[[Category: GFLSDK Reference Manual]] |
Latest revision as of 18:19, 27 April 2010
GFL_BITMAP
The GFL_BITMAP structure contains all informations about picture in memory.
struct GFL_BITMAP ( GFL_BITMAP_TYPE Type GFL_ORIGIN Origin GFL_INT32 Width GFL_INT32 Height GFL_UINT32 BytesPerLine GFL_INT16 LinePadding GFL_UINT16 BitsPerComponent GFL_UINT16 ComponentsPerPixel GFL_UINT16 BytesPerPixel GFL_UINT16 Xdpi GFL_UINT16 Ydpi GFL_INT16 TransparentIndex GFL_INT16 Reserved GFL_INT32 ColorUsed GFL_COLORMAP* ColorMap GFL_UINT8* Data char* Comment void* MetaData GFL_INT32 XOffset GFL_INT32 YOffset char* Name }
Members
- Type
- Type of the picture
GFL_BINARY 0x0001 Binary GFL_GREY 0x0002 Grey scale GFL_COLORS 0x0004 Colors with colormap GFL_RGB 0x0010 TrueColors - Red/Green/Blue GFL_RGBA 0x0020 TrueColors - Red/Green/Blue/Alpha GFL_BGR 0x0040 TrueColors - Blue/Green/Red GFL_ABGR 0x0080 TrueColors - Alpha/Blue/Green/Red GFL_BGRA 0x0100 TrueColors - Blue/Green/Red/Alpha GFL_ARGB 0x0200 TrueColors - Alpha/Red/Green/Blue GFL_CMYK 0x0400 TrueColors - Cyan/Magenta/Yellow/Black
- Origin
- Origin of the picture.
GFL_TOP_LEFT 0 Top left (default) GFL_BOTTOM_LEFT 2 Bottom left GFL_TOP_RIGHT 1 Top right GFL_BOTTOM_RIGHT 3 Bottom right
- Width
- Width in pixels of the picture.
- Height
- Height in pixels of the picture.
- BytesPerLine
- Bytes per line of pixels.
- LinePadding
- Internal use, do not modify.
- BitsPerComponent
- Bits per component, can be 1, 8, 16
- ComponentsPerPixel
- Component per pixel, can be 1, 3 or 4
- BytesPerPixel
- Bytes per pixel (For example: 1, 3 or 4).
- Xdpi
- Pixels per inch in X axis.
- Ydpi
- Pixels per inch in Y axis.
- TransparentIndex
- Index of transparency (only for GFL_COLORS & GFL_GREY type).
- ColorUsed
- Number of color used in the picture (only for GFL_COLORS & GFL_GREY type).
- ColorMap
- Address of a GFL_COLORMAP structure for the colormap (only for GFL_COLORS type).
- Data
- Pointer of the picture data.
- Comment
- Address of a string used by the comment. You must use gflSetComment to change the comment.
- MetaData
- Pointer of Metadata. You must use gflBitmapGetIPTC & gflBitmapGetEXIF to obtain readable data.
GFL_COLORMAP
The GFL_COLORMAP structure is used for colormap.
struct GFL_COLORMAP ( GFL_UINT8 Red[256] GFL_UINT8 Green[256] GFL_UINT8 Blue[256] }
Members
- Red
- Array of red components.
- Green
- Array of green components.
- Blue
- Array of blue components.
GFL_FORMAT_INFORMATION
The GFL_FORMAT_INFORMATION structure contains informations about a format available in GFL.
struct GFL_FORMAT_INFORMATION ( GFL_INT32 Index GFL_ORIGIN Name[8] char Description[64] GFL_UINT32 Status GFL_UINT32 NumberOfExtension char Extension[16][8] }
Members
- Index
- Index of the format.
- Name
- Null-terminated string that contains the name of the format. For example, "jpeg" is for JPEG format.
- Description
- Null-terminated string that contains the label of the format.
- Status
- Format status.
- GFL_READ Reading support
- GFL_WRITE Writing support
- NumberOfExtension
- Nomber of extension known by this format.
- Extension
- Array of Null-terminated string that contains the extension.
GFL_FILE_INFORMATION
The GFL_FILE_INFORMATION structure contains informations about a picture's file.
struct GFL_FILE_INFORMATION ( GFL_BITMAP_TYPE Type GFL_ORIGIN Origin GFL_INT32 Width GFL_INT32 Height GFL_INT32 FormatIndex char FormatName[8] char Description[64] GFL_UINT16 Xdpi GFL_UINT16 Ydpi GFL_UINT16 BitsPerComponent GFL_UINT16 ComponentsPerPixel GFL_INT32 NumberOfImages GFL_UINT32 FileSize GFL_COLORMODEL ColorModel GFL_COMPRESSION Compression char CompressionDescription[64] GFL_INT32 XOffset GFL_INT32 YOffset void* ExtraInfos }
Members
- Type
- Not used
- Origin
- Origin of the picture.
GFL_TOP_LEFT 0 Top left (default) GFL_BOTTOM_LEFT 2 Bottom left GFL_TOP_RIGHT 1 Top right GFL_BOTTOM_RIGHT 3 Bottom right
- Width
- Width in pixels of the picture.
- Height
- Height in pixels of the picture.
- FormatIndex
- Index of picture's format.
- FormatName
- Name of picture's format.
- Description
- File label.
- Xdpi
- Pixels per inch in the X axis.
- Ydpi
- Pixels per inch in the Y axis.
- BitsPerComponent
- Bits per component, can be 1, 8, 16
- ComponentsPerPixel
- Component per pixel, can be 1, 3 or 4
- NumberOfImages
- Number of picture in the file.
- FileSize
- Size of the file.
- ColorModel
- Color model.
GFL_CM_RGB 0 Red-Green-Blue GFL_CM_GREY 1 Greyscale GFL_CM_CMY 2 Cyan-Magenta-Yellow GFL_CM_CMYK 3 Cyan-Magenta-Yellow-Black GFL_CM_YCBCR 4 YCbCr GFL_CM_YUV16 5 YUV 16bits GFL_CM_LAB 6 Lab GFL_CM_LOGLUV 7 Log Luv GFL_CM_LOGL 8 Log L
- Compression
GFL_NO_COMPRESSION 0 No compression GFL_RLE 1 Packbits GFL_LZW 2 LZW GFL_JPEG 3 JPEG GFL_ZIP 4 ZIP GFL_SGI_RLE 5 SGI Packbits GFL_CCITT_RLE 6 CCITT RLE GFL_CCITT_FAX3 7 Fax Group 3 GFL_CCITT_FAX3_2D 8 Fax Group 3-2D GFL_CCITT_FAX4 9 Fax Group 4 GFL_WAVELET 10 Wavelet GFL_UNKNOWN_COMPRESSION 255 Other compression
- CompressionDescription
- Pointer to a buffer that contains the full compression description.
Remarks
- gflFreeFileInformation must be used for freeing the allocated memory.
GFL_LOAD_PARAMS
The GFL_LOAD_PARAMS structure contains options for picture loading.
struct GFL_LOAD_PARAMS ( GFL_UINT32 Flags GFL_INT32 FormatIndex GFL_INT32 ImageWanted GFL_ORIGIN Origin GFL_BITMAP_TYPE ColorModel GFL_UINT32 LinePadding GFL_UINT8 DefaultAlpha GFL_UINT8 PsdNoAlphaForNonLayer GFL_UINT8 PngComposeWithAlpha GFL_UINT8 WMFHighResolution GFL_INT32 Width GFL_INT32 Height GFL_UINT32 Offset GFL_CORDER ChannelOrder GFL_CTYPE ChannelType GFL_UINT16 PcdBase GFL_UINT16 EpsDpi GFL_INT32 EpsWidth GFL_INT32 EpsHeight GFL_LUT_TYPE LutType GFL_UINT16 Reserved GFL_UINT16* LutData const char* LutFilename GFL_UINT8 CameraRawUseAutomaticBalance GFL_UINT8 CameraRawUseCameraBalance GFL_UINT8 CameraRawHighlight GFL_UINT8 CameraRawAutoBright float CameraRawGamma float CameraRawBrightness float CameraRawRedScaling float CameraRawBlueScaling GFL_LOAD_CALLBACKS Callbacks void* UserParams }
Members
- Flags
- Options
GFL_LOAD_SKIP_ALPHA If the picture has an alpha channel, it is ignored GFL_LOAD_IGNORE_READ_ERROR Ignore all read errors GFL_LOAD_BY_EXTENSION_ONLY Use only extension to recognize the filetype GFL_LOAD_READ_ALL_COMMENT Read all comment in the file GFL_LOAD_FORCE_COLOR_MODEL ColorModel is used for the picture type GFL_LOAD_PREVIEW_NO_CANVAS_RESIZE Keep the ratio for the preview GFL_LOAD_BINARY_AS_GREY Load a binary file in 8bits GFL_LOAD_ORIGINAL_COLORMODEL If the color model of the file is CMYK, so the picture loaded will be in CMYK GFL_LOAD_ONLY_FIRST_FRAME If the color model of the file is CMYK, so the picture loaded will be in CMYK GFL_LOAD_ORIGINAL_DEPTH If the file has more than 8 bits per component, keep it GFL_LOAD_METADATA Read all metadata (IPTC & EXIF) GFL_LOAD_COMMENT Read comment GFL_LOAD_HIGH_QUALITY_THUMBNAIL Use high quality for gflLoadThumbnail
- FormatIndex
- Index of the format used to load.
- Default value : -1 (for an automatic recognition).
- ImageWanted
- For a multi-page file, identifies the image number.
- Default value : 0
- Origin
- Origin wanted.
GFL_TOP_LEFT Top left GFL_BOTTOM_LEFT Bottom left GFL_TOP_RIGHT Top right GFL_BOTTOM_RIGHT Bottom right
- Default value : GFF_TOP_LEFT
- ColorModel
- Color Model wanted.
GFL_RGB True colors - Red/Green/Blue (24 bits) GFL_BGR True colors - Blue/Green/Red (24 bits) GFL_RGBA True colors - Red/Green/Blue/Alpha (32 bits) GFL_ABGR True colors - Alpha/Blue/Green/Red (32 bits) GFL_BGRA True colors - Blue/Green/Red/Alpha (32 bits) GFL_ARGB True colors - Red/Green/Blue/Alpha (32 bits)
- Default value : GFL_RGB
- LinePadding
- Pad for a pixels line (For example, a value of 4 allow a line padding on 32bits).
- Default value : 1
- DefaultAlpha
- Alpha value to use when the picture is loaded in 32bits, but the original file doesn't have an alpha.
- Default value: Black
- Width
- For RAW or YUV format, width of picture.
- Height
- For RAW or YUV format, height of picture.
- Offset
- For RAW or YUV format, offset of the picture in the file.
- ChannelOrder
- For RAW format, channel order of the components. GFL_CORDER_INTERLEAVED :Interleaved
GFL_CORDER_SEQUENTIAL Sequential GFL_CORDER_SEPARATE Separate
- ChannelType
- For RAW format, channel type of the components.
GFL_CTYPE_GREYSCALE Greyscale GFL_CTYPE_RGB Red-Green-Blue GFL_CTYPE_BGR Blue-Green-Red GFL_CTYPE_RGBA Red-Green-Blue-Alpha GFL_CTYPE_ABGR Alpha-Blue-Green-Red GFL_CTYPE_CMY Cyan-Magenta-Yellow GFL_CTYPE_CMYK Cyan-Magenta-Yellow-Black
- PcdBase
- For PCD format, it's the base used.
0 192x144 1 384x288 2 768x576
- EpsDpi
- For PS/EPS format, dpi to be used for loading.
- EpsWidth
- For PS/EPS format, width to be used for loading.
- EpsHeight
- For PS/EPS format, height to be used for loading.
- Callbacks
- A GFL_LOAD_CALLBACKS structure
GFL_SAVE_PARAMS
The GFL_SAVE_PARAMS structure contains options for the save of picture.
struct GFL_SAVE_PARAMS ( GFL_UINT32 Flags GFL_INT32 FormatIndex GFL_COMPRESSION Compression GFL_INT16 Quality GFL_INT16 CompressionLevel GFL_BOOL Interlaced GFL_BOOL Progressive GFL_BOOL OptimizeHuffmanTable GFL_BOOL InAscii GFL_LUT_TYPE LutType GFL_UINT8 DpxByteOrder GFL_UINT8 CompressRatio GFL_UINT32 MaxFileSize GFL_UINT16* LutData const char* LutFilename GFL_UINT32 Offset GFL_CORDER ChannelOrder GFL_CTYPE ChannelType GFL_WRITE_CALLBACK Write GFL_TELL_CALLBACK Tell GFL_SEEK_CALLBACK Seek GFL_VIRTUAL_SAVE_CALLBACK GetLine void* GetLineParams void* UserParams }
Members
- Flags
- Options
GFL_SAVE_REPLACE_EXTENSION Replace extension by the default format extension GFL_SAVE_ANYWAY Convert picture if colormode can be saved in this format (For example, RGB picture must be converted in 256 colors to save it in GIF)
- FormatIndex
- Index of format to be used.
- Compression
GFL_NO_COMPRESSION No compression GFL_RLE Packbits GFL_LZW LZW (tiff only) GFL_CCITT_FAX3 Fax Group 3 (tiff only) GFL_CCITT_FAX3_2D Fax Group 3-2D (tiff only) GFL_CCITT_FAX4 Fax Group 4 (tiff only)
- Quality
- Quality of the compression (JPEG)
- 0: the worst, 100: the best
- CompressionLevel
- Level of compression (PNG).
- 1: minimum, 7: maximum
- Interlaced
- Interlaced mode (GIF).
- Progressive
- Progressive mode (JPEG).
- OptimizeHuffmanTable
- Optimize the Huffman table (JPEG).
- InAscii
- Use the ascii mode (PNM)
- Offset
- For RAW or YUV format, offset of the data start.
- ChannelOrder
- For RAW format, channel order of components.
GFL_CORDER_INTERLEAVED Interleaved GFL_CORDER_SEQUENTIAL Sequential GFL_CORDER_SEPARATE Separate
- ChannelType
- For RAW format, channel type of components.
GFL_CTYPE_GREYSCALE Greyscale GFL_CTYPE_RGB Red-Green-Blue GFL_CTYPE_BGR Bleu-Green-Red GFL_CTYPE_RGBA Red-Green-Bleu-Alpha GFL_CTYPE_ABGR Alpha-Bleu-Green-Red GFL_CTYPE_CMY Cyan-Magenta-Yellow GFL_CTYPE_CMYK Cyan-Magenta-Yellow-Black
- Write
- Pointer to a write user function.
- Tell
- Pointer to a tell user function.
- Seek
- Pointer to a seek user function.
GFL_RECT
The GFL_RECT structure define a rectangle.
struct GFL_RECT( GFL_INT32 x GFL_INT32 y GFL_INT32 w GFL_INT32 h }
Members
- x
- X position.
- y
- Y position.
- w
- Width.
- h
- Height.
GFL_COLOR
The GFL_COLOR structure allow to define a color.
struct GFL_COLOR ( GFL_UINT16 Red GFL_UINT16 Green GFL_UINT16 Blue GFL_UINT16 Alpha }
Members
- Red
- Define the red component.
- Green
- Define the green component.
- Blue
- Define the blue component.
- Alpha
- Define the alpha component.
GFL_POINT
The GFL_POINT structure allows to define a point.
struct GFL_POINT( GFL_INT32 x GFL_INT32 y }
Members
- x
- X position.
- y
- Y position.
GFL_FILTER
The GFL_FILTER structure allows to define a matrix for convolution (maximum 7x7).
struct GFL_FILTER( GFL_INT16 Size GFL_INT16 Matrix[7*7] GFL_INT16 Divisor GFL_INT16 Bias }
Members
- Size
- Define the width of the matrix (maximum 7).
- Matrix
- Define each values fo the matrix.
- Divisor
- Define the divisor to apply.
- Bias
- Define the bias to apply.
Example
- A "blur" matrix is defined like this:
- Size = 3
- Matrix = (1 2 1 2 4 2 1 2 1)
- Divisor = 16
- Bias = 0
GFL_IPTC_DATA
struct GFL_IPTC_ENTRY { GFL_UINT32 Id const char* Name const char* Value }
Members
- Id
- ID of the field
- Name
- Pointer to a null-terminated string of the field's name
- Value
- Pointer to a null-terminated string of the field's value
struct GFL_IPTC_DATA { GFL_UINT32 NumberOfItems GFL_IPTC_ENTRY* ItemsList }
Members
- NumberOfItems
- Number of iptc fields
- ItemsList
- List of iptc fields
GFL_EXIF_DATA
IFD
GFL_EXIF_IFD_0 0x0001 GFL_EXIF_MAIN_IFD 0x0002 GFL_EXIF_INTEROPERABILITY_IFD 0x0004 GFL_EXIF_IFD_THUMBNAIL 0x0008 GFL_EXIF_GPS_IFD 0x0010 GFL_EXIF_MAKERNOTE_IFD 0x0020
Some tags
GFL_EXIF_MAKER 0x010F GFL_EXIF_MODEL 0x0110 GFL_EXIF_ORIENTATION 0x0112 GFL_EXIF_EXPOSURETIME 0x829A GFL_EXIF_FNUMBER 0x829D GFL_EXIF_DATETIME_ORIGINAL 0x9003 GFL_EXIF_SHUTTERSPEED 0x9201 GFL_EXIF_APERTURE 0x9202 GFL_EXIF_MAXAPERTURE 0x9205 GFL_EXIF_FOCALLENGTH 0x920A
struct GFL_EXIF_ENTRY { GFL_UINT32 Flag /* EXIF_...IFD */ GFL_UINT32 Tag const char* Name const char* Value }
struct GFL_EXIF_DATA { GFL_UINT32 NumberOfItems GFL_EXIF_ENTRY* ItemsList }
GFL_LOAD_CALLBACKS
struct GFL_LOAD_CALLBACKS { GFL_READ_CALLBACK Read GFL_TELL_CALLBACK Tell GFL_SEEK_CALLBACK Seek GFL_ALLOCATEBITMAP_CALLBACK AllocateBitmap void* AllocateBitmapParams GFL_PROGRESS_CALLBACK Progress void* ProgressParams GFL_WANTCANCEL_CALLBACK WantCancel void* WantCancelParams GFL_VIRTUAL_LOAD_CALLBACK SetLine void* SetLineParams }
GFL_EXIF_DATAEX
Tag format
GFL_EXIF_BYTE 1 GFL_EXIF_STRING 2 GFL_EXIF_USHORT 3 GFL_EXIF_ULONG 4 GFL_EXIF_URATIONAL 5 GFL_EXIF_SBYTE 6 GFL_EXIF_UNDEFINED 7 GFL_EXIF_SSHORT 8 GFL_EXIF_SLONG 9 GFL_EXIF_SRATIONAL 10 GFL_EXIF_SINGLEF 11 GFL_EXIF_DOUBLE 12
struct GFL_EXIF_ENTRYEX { GFL_UINT16 Tag GFL_UINT16 Format GFL_INT32 Ifd GFL_INT32 NumberOfComponents GFL_UINT32 Value GFL_INT32 DataLength char* Data GFL_EXIF_ENTRYEX* Next }
struct GFL_EXIF_DATAEX { GFL_ENTRYEX* Root GFL_INT32 UseMsbf }