The Ik10File.dll, Ik10FileA.dll, Ik10File64.dll, and Ik10File64A.dll provides functions for loading and saving image files.

The Ik10File.dll corresponds to the 32 bit Unicode version.
The Ik10FileA.dll corresponds to the 32 bit ANSI version.
The Ik10File64.dll corresponds to the 64 bit Unicode version.
The Ik10File64A.dll corresponds to the 64 bit ANSI version.

The discussion below will use "Ik10File.dll" to refer to all 4 of these version dlls unless specifically noted.

 

      Ik10File.dll Functions:

Function Name Explanation
IKBmpFileLoad Loads a raster image from a BMP file
IKBmpFileLoadMem Loads a raster image from BMP format raw image data
IKBmpFileSave Saves a raster image into a BMP image file
IKBmpFileSaveMem Saves raster image data in BMP format as raw image data
IKCMYKBmpPlaneFileLoad Loads a bmp file that has been saved in seperate CMYK planes
IKCMYKBmpPlaneFileSave Saves a raster image into seperate CMYK planes
IKDxfFileLoad Loads vector image data from a DXF file
IKDxfFileLoadMem Loads a vector image from DXF format raw image data
IKDxfFileSave Saves vector image data in a DXF file
IKDxfFileSaveMem Saves vector image data in DXF format as raw image data
IKEmfFileLoad Loads vector image data from an EMF file
IKEmfFileLoadMem Loads a vector image from EMF format raw image data
IKEmfFileSave Saves vector image data in an EMF file
IKEmfFileSaveMem Saves vector image data in EMF format as raw image data
IKFileLoad Loads image data from a file
IKFileLoadAsRawData Loads data "as is" from an image file
IKFileLoadMem Loads raw image data.
IKFileSaveAsRawData Saves raw image data into a file
IKFileType Retrieves various image information
IKFileTypeMem Retrieves various information from the raw image data
IKFpxFileLoad Loads raster image data from a FPX file
IKFpxFileLoadMem Loads a raster image from FPX format raw image data
IKFpxFileSave Saves raster image data in a FPX file
IKFpxFileSaveMem Saves raster image data in FPX format as raw image data
IKFTPConnect Connects to an FTP server
IKFTPDeleteFile Deletes an existing file from the FTP server. (Includes connecting to and disconnecting from server)
IKFTPDeleteFileEx Deletes an existing file from the FTP server
IKFTPDisconnect Disconnects from an FTP server
IKFTPGetFile Retrieves a file from the FTP server. (Includes connecting to and disconnecting from server)
IKFTPGetFileEx Retrieves a file from the FTP server
IKFTPPutFile Transfers a file to the FTP server. (Includes connecting to and disconnecting from server)
IKFTPPutFileEx Transfers a file to the FTP server
IKFTPRenameFile Renames an existing file on the FTP server. (Includes connecting to and disconnecting from server)
IKFTPRenameFileEx Renames an existing file on the FTP server.
IKGifFileLoad Loads raster image data from a GIF file
IKGifFileLoadMem Loads a raster image from GIF format raw image data
IKGifFileSave Saves raster image data in a GIF file
IKGifFileSaveMem Saves raster image data in GIF format as raw image data
IKHTTPConnect Connects to an HTTP(S) server
IKHTTPDisconnect Disconnects from an HTTP(S) server
IKHTTPGetFile Retrieves a file from the HTTP(S) server. (Includes connecting to and disconnecting from server)
IKHTTPGetFileEx Retrieves a file from the HTTP(S) server
IKHTTPPutFile Transfers a file to the HTTP(S) server. (Includes connecting to and disconnecting from server)
IKHTTPPutFileEx Transfers a file to the HTTP(S) server
IKJ2kFileLoad Loads raster image data from a JPEG2000 file
IKJ2kFileLoadMem Loads a raster image from JPEG2000 format raw image data
IKJ2kFileSave Saves raster image data in a JPEG2000 file
IKJ2kFileSaveMem Saves raster image data in JPEG2000 format as raw image data
IKJpegExifInfo Retrieves information about the primary image and thumbnail image from an Exif (JPEG) file
IKJpegExifInfoMem Retrieves information about the main image and the thumbnail image from Exif format raw image data
IKJpegFileLoad Loads raster image data from a JPEG file
IKJpegFileLoadMem Loads a raster image from JPEG format raw image data
IKJpegFileSave Saves raster image data in a JPEG file
IKJpegFileSaveEx Saves raster image data and Exif information in a JPEG file
IKJpegFileSaveMem Saves raster image data in JPEG format as raw image data
IKJpegFileSaveMemEx Saves raster image data and Exif information in JPEG format as raw image data
IKOpenFileDialog Displays the Open dialog which can include a file preview and file information
IKOpenFileDlg Displays the "Open" dialog which can include a file preview
IKPcxFileLoad Loads raster image data from a PCX file
IKPcxFileLoadMem Loads a raster image from PCX format raw image data
IKPcxFileSave Saves raster image data in a PCX file
IKPcxFileSaveMem Saves raster image data in PCX format as raw image data
IKPngFileLoad Loads raster image data from a PNG file
IKPngFileLoadEx Loads raster image data, including alpha channel data, from a PNG file
IKPngFileLoadExMem Loads a raster image including an alpha channel from PNG format raw image data
IKPngFileLoadMem Loads a raster image from PNG format raw image data
IKPngFileSave Saves raster image data in a PNG file
IKPngFileSaveEx Saves raster image data, including alpha channel data, in a PNG file
IKPngFileSaveExMem Saves raster image data, including alpha channel data, in PNG format as raw image data
IKPngFileSaveMem Saves raster image data in PNG format as raw image data
IKRGBBmpPlaneFileLoad Loads a bmp file that has been saved in seperate RGB planes
IKRGBBmpPlaneFileSave Saves a raster image into seperate RGB planes
IKSaveFileDialog Displays the "Save" dialog which includes a file preview and file information
IKSaveFileDlg Displays the "Save" dialog box which includes the file preview function
IKSaveFileDlgEx Displays the "Save" dialog which includes the file preview function
IKSvgFileLoad Loads vector image data from a SVG file
IKSvgFileLoadMem Loads a vector image from SVG format raw image data
IKSvgFileSave Saves vector image data in a SVG file
IKSvgFileSaveMem Saves vector image data in SVG format as raw image data
IKSxfP21FileLoad Loads vector image data from a SFX p21 format file
IKSxfP21FileLoadMem Loads a vector image from SXF p21 format raw image data
IKSxfP21FileSave Saves vector image data in an SXF p21 format file
IKSxfP21FileSaveMem Saves vector image data in SXF p21 format as raw image data
IKSxfSfcFileLoad Loads vector image data from an SXF sfc format file
IKSxfSfcFileLoadMem Loads a vector image from SXF sfc format raw image data
IKSxfFileSave Saves vector image data in a SXF Sfc format file
IKSxfSfcFileSaveMem Saves vector image data in SXF sfc format as raw image data
IKTiffFileLoad Loads raster image data from a TIFF file
IKTiffFileLoadMem Loads raster image data from a TIFF format raw image data
IKTiffFileSave Saves raster image data in a TIFF file
IKTiffFileSaveMem Saves raster image data in TIFF format as raw image data
IKWmfFileLoad Loads vector image data from a WMF file
IKWmfFileLoadMem Loads a vector image from WMF format raw image data
IKWmfFileSave Saves vector image data in a WMF file
IKWmfFileSaveMem Saves vector image data in WMF format as raw image data
IKYCCBmpPlaneFileLoad Loads raster image from a bmp file that has been saved in seperate YCrCb planes into the memory
IKYCCBmpPlaneFileSave Saves a raster image into seperate YCrCb planes

 

 

Structure definitions (User-defined types)

IKFILE_INFO: refers to file information (use either IKFileType or IKFileTypeMem)

(1)C++Builder
     typedef struct {
          short     BitCount;
          long      Xdpi;
          long      Ydpi;
          long      Width;
          long      Height;
          long      WidthByte;
          long      ImageSize;
          short     FileType;
          short     Interlace;
          short     MaxPage;
          long      FileSize;
          char      Comment[1024];
          WORD   CommentLen;
          short     CreationTimeYear;
          short     CreationTimeMonth;
          short     CreationTimeDay;
          short     CreationTimeHour;
          short     CreationTimeMinute;
          short     CreationTimeSecond;
          short     LastAccessTimeYear;
          short     LastAccessTimeMonth;
          short     LastAccessTimeDay;
          short     LastAccessTimeHour;
          short     LastAccessTimeMinute;
          short     LastAccessTimeSecond;
          short     LastWriteTimeYear;
          short     LastWriteTimeMonth;
          short     LastWriteTimeDay;
          short     LastWriteTimeHour;
          short     LastWriteTimeMinute;
          short     LastWriteTimeSecond;
     } IKFILE_INFO;
     typedef IKFILE_INFO * PTR_IKFILE_INFO;

(2)Delphi
     type
          IKFILE_INFO = Record
               BitCount:     Smallint;
               Xdpi:           Longint;
               Ydpi:           Longint;
               Width:         Longint;
               Height:        Longint;
               WidthByte:   Longint;
               ImageSize:  Longint;
               FileType:     Smallint;
               Interlace:     Smallint;
               MaxPage:     Smallint;
               FileSize:       Longint;
               Comment:    array [0..1023] of Char;
               CommentLen:             Word;
               CreationTimeYear:      Smallint;
               CreationTimeMonth:    Smallint;
               CreationTimeDay:       Smallint;
               CreationTimeHour:      Smallint;
               CreationTimeMinute:    Smallint;
               CreationTimeSecond:   Smallint;
               LastAccessTimeYear:    Smallint;
               LastAccessTimeMonth:  Smallint;
               LastAccessTimeDay:     Smallint;
               LastAccessTimeHour:    Smallint;
               LastAccessTimeMinute:  Smallint;
               LastAccessTimeSecond: Smallint;
               LastWriteTimeYear:       Smallint;
               LastWriteTimeMonth:     Smallint;
               LastWriteTimeDay:        Smallint;
               LastWriteTimeHour:       Smallint;
               LastWriteTimeMinute:    Smallint;
               LastWriteTimeSecond:   Smallint;
          end;

Executing the IKFileType function sets values into each member variable. Except for MaxPage and FileSize, the values set by the IkFileType function reflect the specified page information. With the exception of TIFF file format, Comment values are for the specified file.

BitCount:
The number of bits per pixel in the image *1
1:2 colors, 4:16 colors, 8:256 colors, 16:16 bit color, 24:24 bit color, 32:32 color
Xdpi:
The number of pixels per horizontal inch of the image
Ydpi:
The number of pixels per vertical inch of the image
Width:
The width of an image in pixels
Height:
The height of an image in pixels
WidthByte:
The number of bytes per line in the image *1
ImageSize:
The size of an image in bytes *1
FileType:
Refers to the file type
Value: Format Value: Format Value: Format Value: Format
1: BMP/DIB 2: BMP/DIB(RLE4) 3: BMP/DIB(RLE8) 4: JPEG(Standard DCT)
5: JPEG(Progressive DCT) 6: GIF(87a) 7: GIF(89a) 8: TIFF(Uncompressed)
9: TIFF(CCITTRLE) 10: TIFF(GROUP3-1D) 11: TIFF(GROUP3-2D) 12: TIFF(GROUP4)
13: TIFF(PACKBITS) 14: TIFF(LZW) 15: PNG 16: FPX(Uncompressed)
17: FPX(Single Color) 18: FPX(JPEG) 19: PCX 20:WMF
21: EMF 22: DXF 23: Exif(JPEG) 24: SVG
25: JPEG2000 26: JPEG2000(Code Stream) 27: SXF(p21) 28: SXF(sfc)
29: TIFF(JPEG)
TIFF GROUP3-1D is the same as MH, TIFF GROUP3-2D is the same as MR, TIFF GROUP4 is the same as MMR.
The ImageKit supports a portion of the Exif version 2.3 tags
Note: If an unsupported image is loaded, then the FileType will return 0.
Interlace:
Sets whether or not Gif and Png images are interlaced (0: No Interlace, 1: Interlacing) *1
MaxPage:
Refers to the number of pages of the image file
FileSize:
Refers to the size of the actual image data
Comment:
Refers to the comment in certain image files *1, *3
Regarding the format of the comment, please refer to the appropriate save file command
CommentLen:
Refers to the length of the string in the Comment *2
CreationTimeYear:
Refers to the year when the file was created *2
CreationTimeMonth:
Refers to the month when the file was created *2
CreationTimeDay:
Refers to the day when the file was created *2
CreationTimeHour:
Refers to the hour when the file was created *2
CreationTimeMinute:
Refers to the minute when the file was created *2
CreationTimeSecond:
Refers to the second when the file was created *2
LastAccessTimeYear:
Refers to the year when the file was last accessed *2
LastAccessTimeMonth:
Refers to the month when the file was last accessed *2
LastAccessTimeDay:
Refers to the day when the file was last accessed *2
LastAccessTimeHour:
Refers to the hour when the file was last accessed *2
LastAccessTimeMinute:
Refers to the minute when the file was last accessed *2
LastAccessTimeSecond:
Refers to the second when the file was last accessed *2
LastWriteTimeYear:
Refers to the year when the file was last modified *2
LastWriteTimeMonth:
Refers to the month when the file was last modified *2
LastWriteTimeDay:
Refers to the day when the file was last modified *2
LastWriteTimeHour:
Refers to the hour when the file was last modified *2
LastWriteTimeMinute:
Refers to the minute when the file was last modified *2
LastWriteTimeSecond:
Refers to the second when the file was last modified *2


*1 Cannot be used with vector images
*2 These are members added in the ImageKit7. This is important if converting ImageKit5 or ImageKit6 programs
*3 The size of these members were increased in the ImageKit7. This is important if converting ImageKit5 or ImageKit6 programs.

 

IMAGE_TAG: Refers to the main image and thumbnail image information in an Exif file

(1)C++Builder
     typedef struct {
          unsigned short    Compression;
          unsigned short    Orientation;
          unsigned short    YCbCrPositioning;
          unsigned long     XResolution[2];
          unsigned long     YResolution[2];
          unsigned short    ResolutionUnit;
          char          DateTime[20];
          char          ImageDescription[257];
          WORD       ImageDescriptionLen;
          char          Make[257];
          WORD       MakeLen;
          char          Model[257];
          WORD       ModelLen;
          char          Software[257];
          WORD       SoftwareLen;
          char          Artist[257];
          WORD       ArtistLen;
          char          Copyright[257];
          WORD       CopyrightLen;
          HANDLE     ThumbImageHandle;
     } IMAGE_TAG;
     typedef IMAGE_TAG * PTR_IMAGE_TAG;

(2)Delphi
     type
          IMAGE_TAG = Record
               Compression:  Word;
               Orientation:     Word;
               YCbCrPositioning: Word;
               XResolution:     array[0..1] of DWORD;
               YResolution:     array[0..1] of DWORD;
               ResolutionUnit: Word;
               DateTime:        array[0..19] of Char;
               ImageDescription: array[0..256] of Char;
               ImageDescriptionLen: Word;
               Make:          array[0..256] of Char;
               MakeLen:     Word;
               Model:         array[0..256] of Char;
               ModelLen:    Word;
               Software:     array[0..256] of Char;
               SoftwareLen: Word;
               Artist:           array[0..256] of Char;
               ArtistLen:      Word;
               Copyright:     array[0..256] of Char;
               CopyrightLen: Word;
               ThumbImageHandle: THandle;
          end;

Compression:
Refers to the type of image compression (1: Uncompressed, 6: JPEG Compression, *Thumbnail image only)
Orientation:
Refers to the image orientation as viewed in terms of rows and columns
YCbCrPositioning:
Refers to the position of chrominance components (CbCr) in relation to the luminance component (Y) (1: center, 2: Co-sited)
XResolution:
Refers to the number of pixels per ResolutionUnit in the image in the horizontal direction
ResolutionUnit = XResolution[0] / XResolution[1]
YResolution:
Refers to the number of pixels per ResolutionUnit in the image in the vertical direction
ResolutionUnit = YResolution[0] / YResolution[1]
ResolutionUnit:
The unit for measuring XResolution and Yresolution (2: Inches, 3: Centimeters)
DateTime:
The date and time of original file generation (The format is "YYYY:MM:DD HH:MM:SS")
ImageDescription:
Refers to the character string giving the title of the image *2
ImageDescriptionLen:
Refers to the length of the string describing the ImageDescription *1
Make:
Refers to the manufacturer of the recording equipment that generated the image *2
MakeLen:
Refers to the length of the string describing the Make *1
Model:
Refers to the model name of the equipment that generated the image *2
ModelLen:
Refers to the length of the string describing the Model *1
Software:
Refers to the name and version of the software used to generate the image *2
SoftwareLen:
Refers to the length of the string describing the Software *1
Artist:
Refers to the camera owner, photographer, or creator of the image *2
ArtistLen:
Refers to the length of the string describing the Artist *1
Copyright:
Refers to the copyright information for the image *2
CopyrightLen:
Refers to the length of the string describing the Copyright *1
ThumbImageHandle:
The image handle (address) to the thumbnail image (thumbnail image only)


*1 These are members newly added in the ImageKit10. This is important if converting ImageKit6 programs
*2 The size of these members was changed in the ImageKit10. This is important if converting ImageKit6 or ImageKit7 programs

EXIF_TAG: Refers to the Exif tag information

(1)C++Builder
     typedef struct {
          char          Exif_Version[5];
          char          FlashPix_Version[5];
          unsigned short ColorSpace;
          unsigned long   PixelXDimension;
          unsigned long   Pixel,xDimension;
          char                ComponentsConfiguration[5];
          unsigned long   CompressedBitsPerPixel[2];
          char                MakerNote[257];
          WORD            MakerNoteLen;
          char               UserComment[257];
          WORD            UserCommentLen;
          char               UserCommentID[8];
          char               DateTimeOriginal[20];
          char               DateTimeDigitized[20];
          char               SubSecTime[129];
          WORD            SubSecTimeLen;
          char               SubSecTimeOriginal[129];
          WORD            SubSecTimeOriginalLen;
          char               SubSecTimeDigitized[129];
          WORD            SubSecTimeDigitizedLen;
          unsigned long  ExposureTime[2];
          long               ShutterSpeedValue[2];
          unsigned long ApertureValue[2];
          long               BrightnessValue[2];
          long               ExposureBiasValue[2];
          unsigned long MaxApertureValue[2];
          unsigned long SubjectDistance[2];
          unsigned short MeteringMode;
          unsigned short LightSource;
          unsigned short Flash;
          unsigned long  FocalLength[2];
          unsigned long  FNumber[2];
          unsigned short ExposureProgram;
          char                SpectralSensitivity[257];
          WORD             SpectralSensitivityLen;
          unsigned short ISOSpeedRatings;
          unsigned long  FlashEnergy[2];
          unsigned long  FocalPlaneXResolution[2];
          unsigned long  FocalPlaneYResolution[2];
          unsigned short FocalPlaneResolutionUnit;
          unsigned short SubjectLocationX;
          unsigned short SubjectLocationY;
          unsigned long  ExposureIndex[2];
          unsigned short SensingMethod;
          BYTE     FileSource;
          BYTE     SceneType;
          unsigned short     WhiteBalance;
          unsigned short     SceneCaptureType;
          unsigned short     Contrast;
          unsigned short     Saturation;
          unsigned short     Sharpness;
     } EXIF_TAG;
     typedef EXIF_TAG * PTR_EXIF_TAG;

(2)Delphi
     type
          EXIF_TAG = Record
               Exif_Version:          array[0..4] of Char;
               FlashPix_Version:    array[0..4] of Char;
               ColorSpace:           Word;
               PixelXDimension:    DWORD;
               PixelYDimension:    DWORD;
               ComponentsConfiguration: array[0..4] of Char;
               CompressedBitsPerPixel: array[0..1] of DWORD;
               MakerNote:            array[0..256] of Char;
               MakerNoteLen:       Word;
               UserComment:       array[0..256] of Char;
               UserCommentLen:  Word;
               UserCommentID:   array[0..7] of Char;
               DateTimeOriginal:  array[0..19] of Char;
               DateTimeDigitized: array[0..19] of Char;
               SubSecTime:         array[0..128] of Char;
               SubSecTimeLen:    Word;
               SubSecTimeOriginal: array[0..128] of Char;
               SubSecTimeOriginalLen:    Word;
               SubSecTimeDigitized: array[0..128] of Char;
               SubSecTimeDigitizedLen:    Word;
               ExposureTime:      array[0..1] of DWORD;
               ShutterSpeedValue: array[0..1] of Longint;
               ApertureValue:      array[0..1] of DWORD;
               BrightnessValue:    array[0..1] of Longint;
               ExposureBiasValue: array[0..1] of Longint;
               MaxApertureValue: array[0..1] of DWORD;
               SubjectDistance:    array[0..1] of DWORD;
               MeteringMode:       Word;
               LightSource:          Word;
               Flash:                   Word;
               FocalLength:          array[0..1] of DWORD;
               FNumber:              array[0..1] of DWORD;
               ExposureProgram: Word;
               SpectralSensitivity: array[0..256] of Char;
               SpectralSensitivityLen: Word;
               ISOSpeedRatings:   Word;
               FlashEnergy:          array[0..1] of DWORD;
               FocalPlaneXResolution: array[0..1] of DWORD;
               FocalPlaneYResolution: array[0..1] of DWORD;
               FocalPlaneResolutionUnit: Word;
               SubjectLocationX:       Word;
               SubjectLocationY:       Word;
               ExposureIndex:          array[0..1] of DWORD;
               SensingMethod:         Word;
               FileSource:                Byte;
               SceneType:               Byte;
               WhiteBalance:           Word;
               SceneCaptureType:   Word;
               Contrast:                  Word;
               Saturation:               Word;
               Sharpness:               Word;
          end;

Tags Related to Version Information

Exif_Version:
Refers to the version of the Exif Standard supported (For example: "0210")
FlashPix_Version:
Refers to the version of the FPXR file FlashPix format supported (For example: "0100")

Tags Related to Characteristics of Image Data

ColorSpace:
Color space information (1: sRGB)

Tags Related to Composition of Image Data

PixelXDimension:
Refers to the width of the image
PixelYDimension:
Refers to the height of the image
ComponentsConfiguration:
Refers to the color of each color plane in the Exif image arranged in order from the 1st plane to the 4th plane
CompressedBitsPerPixel:
Refers to the compression mode used for a compressed image(bits/pixel)
Compression mode = CompressedBitsPerPixel[0] / CompressedBitsPerPixel[1]

Tags Related to User Information

MakerNote:
Comments of the manufacturer of the Exif writer *2
MakerNoteLen:
The length of the string describing the MakerNote *1
UserComment:
Comments or keywords that the Exif user can place on the image *2
UserCommentLen:
The length of the string describing the UserComment *1
UserCommentID:
An identification code (8 bytes) that occurs at the start of the UserComment tag. (Excess space is padded with NULL(0x00)

Character Code Code Input Method (8byte) Reference
ASCII 0x41,0x53,0x43,0x49,0x49,0x00,0x00,0x00 ITU-T T.50 IA5
JIS 0x4A,0x49,0x53,0x00,0x00,0x00,0x00,0x00 JIS X0208-1990
Unicode 0x55,0x4E,0x49,0x43,0x4F,0x44,0x45,0x00 Unicode Standard
Undefined 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 Undefined

* In Delphi, 0x should be replaced with $.

Tags Related to Date Time

DateTimeDigitized:
The date and time when the image was stored as digital data (Format is "YYYY:MM:DD HH:MM:SS")
DateTimeOriginal:
The data and time when the original image data was generated (Format is "YYYY:MM:DD HH:MM:SS")
SubSecTime:
Records fractions of seconds for the DateTime member of the IMAGE_TAG structure *2
SubSecTimeLen:
The length of the string in SubSecTime. *3
SubSecTimeOriginal:
Records fractions of seconds for DateTimeOriginal *2
SubSecTimeOriginalLen:
The length of the string in SubSecTimeOriginal. *3
SubSecTimeDigitized:
Records fractions of seconds for DateTimeDigitized *2
SubSecTimeDigitizedLen:
The length of the string in SubSecTimeDigitized. *3

Tags related to photographic conditions

ExposureTime:
The exposure time (in seconds)
ExposureTime = ExposureTime[0] / ExposureTime[1]
ShutterSpeedValue:
The shutter speed
The shutter speed (unit is the APEX value) = ShutterSpeedValue[0] / ShutterSpeedValue[1]
ApertureValue:
The lens aperature value
The lens aperature value (unit is the APEX value) = ApertureValue[0] / ApertureValue[1]
BrightnessValue:
The brightness value. Ordinarily brightness is given in the range from -99.99 to 99.99
he brightness value (unit is the APEX value) = BrightnessValue[0] / BrightnessValue[1]
ExposureBiasValue:
The exposure bias value. Ordinarily exposure bias is given in the range from -99.99 to 99.99.
The exposure bias value (unit is the APEX value) = ExposureBiasValue[0] / ExposureBiasValue[1]
MaxApertureValue:
The smallest F value of the lens. Ordinarily the smallest F value of the lens is given in the range from 00.00 to 99.99.
The smallest F value of the lens (unit is the APEX value) = MaxApertureValue[0] / MaxApertureValue[1]
SubjectDistance:
The distance to the subject
The distance to the subject (in meters) = SubjectDistance[0] / SubjectDistance [1]
MeteringMode:
The metering mode
(0: Unknown, 1: Average, 2: CounterWeightedAverage, 3: Spot, 4: MultiSpot, 5: Pattern, 6: Partial, 255: Other)
LightSource:
The type of light source
(0: Unknown, 1: Daylight, 2: Fluorescent, 3: Tungsten (incandescent light), 4: Flash, 9: Clear daylight, 10: Cloudy day, 11: Shadow, 12: Daylight color fluorescent light (D:5700 - 7100K), 13: Mid-day white fluorescent light (N: 4600 - 5500K), 14: White fluorescent light (W: 3800 - 4500K), 15: White fluorescent light (WW: 3200 - 3800K), 16: Fluorescent light bulb (L: 2600 - 3250K), 17: Standard light A, 18: Standard light B, 19: Standard light C, 20: D55, 21: D65, 22: D75, 23: D50, 24: ISO studio tungsten, 255: Other)
Flash:
The flash firing status and the flash return status.
Bit 0 indicates the flash firing status, bits 1 and 2 indicate the flash return status, bits 3 and 4 indicate the camera flash mode, bit 5 indicates if the flash function is enabled, and bit 6 indicates red-eye removal mode.
Values for bit 0 indicate whether the flash fired.
     0b = Flash did not fire
     1b = Flash fired
Values for bits 1 and 2 indicate the return status
     00b = No flash return detection function
     01b = Reserved
     10b = Flash return light not detected
     11b = Flash return light detected
Values for bits 3 and 4 indicate camera flash mode
     00b = Unknown flash mode
     01b = Compulsory flash firing
     10b = Compulsory flash supression
     11b = Auto mode
Values for bit 5 indicate whether flash function is enabled
     0b = Flash function enabled
     1b = Flash function disabled
Values for bit 6 indicate whether red eye removal is enabled
     0b = Red eye removal is not used or unknown
     1b = Red eye removal is used
Resulting flash tag values (in hexadecimal notation)
     0x0000 = Flash did not fire
     0x0001 = Flash fired
     0x0005 = Flash return light not detected
     0x0007 = Flash return light detected
*In Delphi, a $ is used instead of 0x.
FocalLength:
The focal length of the lens
The actual focal length of the lens (in mm) = FocalLength[0] / FocalLength[1]
FNumber:
The Fnumber
The FNumber = FNumber[0] / FNumber[1]
ExposureProgram:
The class of the program used by the camera to set exposure when the image was taken.
(0: Not defined, 1: Manual, 2: Normal program, 3: Aperture priority, 4: Shutter priority, 5: Creative program (biased toward depth of field), 6: Action program biased toward fast shutter speed), 7: Portrait mode (for clsoeup photos with the background out of focus), 8: Landscape mode (for landscapes with the background in focus
SpectralSensitivity:
The spectral sensitivity of each channel of the camera used.
SpectralSensitivityLen:
The length of the string describing the SpectralSensitivity *1
ISOSpeedRatings:
The ISO Speed and ISO Latitude of the camera or input device as specified in ISO 12232xiv
FlashEnergy:
The strobe energy at the time the image was captured as measured in Beam Candle Power Seconds
Flash energy (in BCPS) = FlashEnergy[0] / FlashEnergy[1]
FocalPlaneXResolution:
The number of pixels in the image horizontal direction per FocalPlaneResolutionUnit on the camera focal plane
The FocalPlaneXResolution = FocalPlaneXResolution[0] / FocalPlaneXResolution[1]
FocalPlaneYResolution:
The number of pixels in the image vertical direction per FocalPlaneResolutionUnit on the camera focal plane
FocalPlaneYResolution = FocalPlaneYResolution[0] / FocalPlaneYResolution[1]
FocalPlaneResolutionUnit:
The unit for measuring FocalPlaneXResolution and FocalPlaneYResolution.(2: Inches, 3: Centimeters)
SubjectLocationX:
The horizontal coordinate of the center of the main subject of the scene
SubjectLocationY:
The vertical coordinate of the center of the main subject of the scene
ExposureIndex:
The exposure index selected on the camera or input device at the time the image was captured
The exposure index = ExposureIndex[0] / ExposureIndex[1]
SensingMethod:
The image sensor type on the camera or input device
(1: Not defined, 2: One-chip color area sensor, 3: Two-chip color area sensor, 4: Three-chip color area sensor, 5: Color sequential area sensor, 7: Trilinear sensor, 8: Color sequential linear sensor)
FileSource:
The image source. If a DSC (Digital Still Camera) recorded the image, this value will be set to 3 indicating that the image was recorded on a DSC
SceneType:
The type of scene. If a DSC recorded the image, this value will be set to 1 indicating that the image was directly photographed
White Balance:
Indicates the white balance mode. *3
ScaneCaptureType:
Indicates the type of scene when image was captured. *3
Contrast:
Contrast when image was captured. *3
Saturation:
Saturation when image was captured. *3
Sharpness:
Sharpness when image was captured. *3

APEX is the Additive System of Photographic Exposure
BCPS is the Beam Candle Power Seconds

*1 These are members newly added in the ImageKit7. This is important to note if converting ImageKit6 programs
*2 The size of these members have changed in the ImageKit10. This is important to note if converting ImageKit6 or ImageKit7 programs
*3 These are members newly added in the ImageKit10. This is important to note if converting ImageKit6 or ImageKit7 programs

GPS_TAG:  Refers to GPS tag information

(1)C++Builder
     typedef struct {
          char                  GPS_Version[5];
          char                  MapDatum[129];
          WORD               MapDatumLen;
          char                  Latitude[2];
          unsigned long     LatitudeD[2];
          unsigned long     LatitudeM[2];
          unsigned long     LatitudeS[2];
          char                   Longitude[2];
          unsigned long     LongitudeD[2];
          unsigned long     LongitudeM[2];
          unsigned long     LongitudeS[2];
          BYTE                 AltitudeRef;
          unsigned long     Altitude[2];
          unsigned long     TimeStampH[2];
          unsigned long     TimeStampM[2];
          unsigned long     TimeStampS[2];
          char                   ProcessingMethod[257];
          WORD                ProcessingMethodLen;
          char                  ProcessingMethodID[8];
          char                  DateStamp[11];
     } GPS_TAG;
     typedef GPS_TAG * PTR_GPS_TAG;

(2)Delphi
     type
          GPS_TAG = Record
               GPS_Version:         array[0..4] of AnsiChar;
               MapDatum:            array[0..128] of AnsiChar;
               MapDatumLen:       Word;
               Latitude:                array[0..1] of AnsiChar;
               LatitudeD:              array[0..1] of DWORD;
               LatitudeM:              array[0..1] of DWORD;
               LatitudeS:              array[0..1] of DWORD;
               Longitude:             array[0..1] of AnsiChar;
               LongitudeD:           array[0..1] of DWORD;
               LongitudeM:          array[0..1] of DWORD;
               LongitudeS:          array[0..1] of DWORD;
               AltitudeRef:          Byte;
               Altitude:               array[0..1] of DWORD;
               TimeStampH:       array[0..1] of DWORD;
               TimeStampM:       array[0..1] of DWORD;
               TimeStampS:       array[0..1] of DWORD;
               ProcessingMethod: array[0..256] of AnsiChar;
               ProcessingMethodLen: Word;
               ProcessingMethodID: array[0..7] of AnsiChar;
               DateStamp:           array[0..10] of AnsiChar;
          end;

 

GPS_Version:
Refers to the GPS tag version (i.e. "2000")
MapDatum:
Refers to the name of the map data used *1
MapDatumLen:
Refers to the length of the string used in MapDatum *2
Latitude:
Refers to the latitude direction where the image was taken. (i.e. "N" or "S")
LatitudeD:
The latitude in degrees where the image was taken.
LatitudeD = LatitudeD[0] / LatitudeD[1]
LatitudeM:
The latitude in minutes where the image was taken
LatitudeM = LatitudeM[0] / LatitudeM[1]
LatitudeS:
The latitude in seconds where the image was taken
LatitudeS = LatitudeS[0] / LatitudeS[1]
Longitude:
Refers to the longitude direction where the image was taken. (i.e. "E" or "W")
LongitudeD:
The longitude in degrees where the image was taken
LongitudeD = LongitudeD[0] / LongitudeD[1]
LongitudeM:
The longitude in minutes where the image was taken
LongitudeM = LongitudeM[0] / LongitudeM[1]
LongitudeS:
The longitude in seconds where the image was taken
LongitudeS = LongitudeS[0] / LongitudeS[1]
AltitudeRef:
The altitude used as the reference altitude. Units are in meters *2
If the reference is sea level and the altitude is above sea level, 0 is given. If the altitude is below sea level, a value of 1 is given.
Altitude:
The altitude in meters where the image was taken
Altitude = Altitude[0] / Altitude[1]
TimeStampH:
The GPS time stamp in hours *2
GPS hours = TimeStampH[0] / TimeStampH[1]
TimeStampM:
The GPS time stamp in minutes *2
GPS minutes = TimeStampM[0] / TimeStampM[1]
TimeStampS:
The GPS time stamp in seconds *2
GPS seconds = TimeStampS[0] / TimeStampS[1]
ProcessingMethod:
Refers to the name of the method used for location finding. (For example: "CELLID", "WLAN", "GPS", etc.) *2
ProcessingMethodLen:
Refers to the length of the string used in ProcessingMethod *2
ProcessingMethodID:
Refers to the to the identification code for the processing method. The identification code for the processing method. This code is an 8 byte constant with any unused bytes padded with NULL (0x00) *2

String Code Code Entry Method (8 bytes) Reference
ASCII 0x41,0x53,0x43,0x49,0x49,0x00,0x00,0x00 ITU-T T.50 IA5
JIS 0x4A,0x49,0x53,0x00,0x00,0x00,0x00,0x00 JIS X0208-1990
Unicode 0x55,0x4E,0x49,0x43,0x4F,0x44,0x45,0x00 Unicode Standard
Undefined 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 Undefined
DateStamp:
Refers to the GPS date information in the Exif image. The format is "YYYY:MM:DD". *2

*1 The size of these members has changed in the ImageKit10. This is important to note if converting ImageKit7 programs
*2 These are members newly added in the ImageKit10. This is important to note if converting ImageKit7 programs

 

INTOP_TAG: Refers to compatibility information

(1)C++Builder
     typedef struct {
          char                  InteroperabilityIndex[4];
          char                  InteroperabilityVersion[5];
     } INTOP_TAG;
     typedef INTOP_TAG * PTR_INTOP_TAG;

(2)Delphi
     type
          INTOP_TAG = Record
               InteroperabilityIndex:         array[0..3] of AnsiChar;
               InteroperabilityVersion:         array[0..4] of AnsiChar;
          end;

 

InteroperabilityIndex:
Refers to the identification of the Interoperability rule.
"R98" The R98 file as prescribed by Exif98 or the standard DCF file as prescribed by the Design Rule for Camera File System.
"THM" The standard DCF thumbnail file as prescribed by the Design Rule for Camera File System.
"R03" The standard DCF option file as prescribed by the Design Rule for Camera File System.
InteroperabilityVersion:
Refers to the interoperability Version (i.e. "0100")

 

EXIF_INFO: Refers to Exif information (uses IKJpegExifInfo)

(1)C++Builder
     typedef struct {
          IMAGE_TAG  MainImageInfo;
          IMAGE_TAG  ThumbImageInfo;
          EXIF_TAG     ExifInfo;
          GPS_TAG     GPSInfo;
          INTOP_TAG     IntOpeInfo;
     } EXIF_INFO;
     typedef EXIF_INFO * PTR_EXIF_INFO;

(2)Delphi
     type
          EXIF_INFO = Record
               MainImageInfo:    IMAGE_TAG;
               ThumbImageInfo: IMAGE_TAG;
               ExifInfo:     EXIF_TAG;
               GPSInfo:    GPS_TAG;
               IntOpeInfo:    INTOP_TAG;
          end;

MainImageInfo:
The information about the primary image
ThumbImageInfo:
The information about the thumbnail image
ExifInfo:
The Exif information
GPSInfo:
The GPS information *1
IntOpeInfo:
The compatibility information *2

*1 These are members newly added in the ImageKit7. This is important to note if converting ImageKit6 programs
*2 These are members newly added in the ImageKit10. This is important to note if converting ImageKit6 or ImageKit7 programs

 

Definition of the User Function

Syntax

     (1)C++Builder
          BOOL __stdcall UserProc(short Percent);

     (2)Delphi
          function UserProc(Percent: Smallint): LongBool; stdcall;

Parameters

Name          Explanation
------------------------------------------------------------------------------------------------------
Percent        The percent of the current process that is completed

Return Value
When False (0) is returned the execution is terminated. When True (nonzero) is returned the execution continues.

The User Function is explained using the term "UserProc". Although any name for the User Function would be appropriate, in our example the following syntax is used to pass parameters.

(1)C++Builder    UserProc
(2)Delphi                             LONG_PTR(Addr(UserProc)) or LONG_PTR(@UserProc)

 

The ImageKit10 VCL is a product created by Newtone Corporation