Page 1 of 1

libgfl

Posted: Fri May 25, 2007 9:12 am
by Inner
A library that supports a massive amount of image formats.

Get the lib & dll from http://www.xnview.com/ GFL SDK

Code: Select all

Macro GFL_UINT8 : b : EndMacro
Macro GFL_UINT16 : w : EndMacro
Macro GFL_INT16 : w : EndMacro
Macro GFL_UINT32 : l : EndMacro
Macro GFL_INT32 : l : EndMacro
Macro GFL_BOOL : b : EndMacro

Macro GFL_READ_CALLBACK : GFL_UINT32 : EndMacro
Macro GFL_TELL_CALLBACK : GFL_UINT32 : EndMacro
Macro GFL_SEEK_CALLBACK : GFL_UINT32 : EndMacro
Macro GFL_VIRTUAL_SAVE_CALLBACK : GFL_UINT16 : EndMacro
Macro GFL_ALLOCATEBITMAP_CALLBACK : GFL_UINT32 : EndMacro
Macro GFL_PROGRESS_CALLBACK : GFL_UINT32 : EndMacro
Macro GFL_WANTCANCEL_CALLBACK : GFL_UINT32 : EndMacro
Macro GFL_WRITE_CALLBACK : GFL_UINT32 : EndMacro

Macro GFL_BITMAP_TYPE : GFL_UINT16 : EndMacro
Macro GFL_ORIGIN : GFL_UINT16 : EndMacro
Macro GFL_CORDER : GFL_UINT16 : EndMacro
Macro GFL_CTYPE : GFL_UINT16 : EndMacro
Macro GFL_LUT_TYPE : GFL_UINT16 : EndMacro
Macro GFL_COMPRESSION : GFL_UINT16 : EndMacro
Macro GFL_COLORMODEL : GFL_UINT16 : EndMacro

Import "../lib/libgfl.lib"
	gflMemoryAlloc(size.l)
	gflMemoryRealloc(*ptr.l,size.l)
	gflMemoryFree(*ptr.l)
	gflGetVersion()
	gflGetVersionOfLibformat()
	gflLibraryInit()
	gflLibraryInitEx(alloc_callback.l,realloc_callback.l,free_callback.l,*user_parms.l)
	gflLibraryExit()
	gflEnableLZW(arg.b)
	gflSetPluginsPathname(*arg.s)
	gflGetNumberOfFormat()
	gflGetFormatIndexByName(name.s)
	gflGetFormatNameByIndex(index.l)
	gflFormatIsSupported(name.s)
	gflFormatIsWritableByIndex(index.l)
	gflFormatIsWritableByName(name.s)
	gflFormatIsReadableByIndex(index.l)
	gflFormatIsReadableByName(name.s)
	gflGetDefaultFormatSuffixByIndex(index.l)
	gflGetDefaultFormatSuffixByName(name.s)
	gflGetFormatDescriptionByIndex(index.l)
	gflGetFormatDescriptionByName(name.s)
	gflGetFormatInformationByIndex(index.l,*info.l)
	gflGetFormatInformationByName(name.s,*info.l)
	gflSaveParamsIsSupportedByIndex(index.l,type.l)
	gflSaveParamsIsSupportedByName(name.s,type.l)
	gflCompressionIsSupportedByIndex(index.l,comp.l)
	gflCompressionIsSupportedByName(name.s,comp.l)
	gflBitmapIsSupportedByIndex(index.l,*bitmap.l)
	gflBitmapIsSupportedByName(name.s,*bitmap.l)
	gflBitmapTypeIsSupportedByIndex(index.l,type.l,bits_per_component.w)
	gflBitmapTypeIsSupportedByName(name.s,type.l,bits_per_component.w)
	gflGetErrorString(error.l)
	gflGetLabelForColorModel(color_model.l)
	gflGetFileInformation(filename.s,index.l,info.l)
	gflGetFileInformationFromHandle(handle.l,index.l,*callbacks.l,*info.l)
	gflGetFileInformationFromMemory(*dat.b,data_length.l,index.l,*info.l)
	gflFreeFileInformation(*info.l)
	gflGetDefaultLoadParams(*params.l)
	gflLoadBitmap(filename.s,*bitmap.l,*params.l,*info.l)
	gflLoadBitmapFromHandle(handle.l,*bitmap.l,*params.l,*info.l)
	gflLoadBitmapFromMemory(*dat.b,data_length.l,*bitmap.l,*params.l,*info.l)
	gflGetDefaultThumbnailParams(*params.l)
	gflLoadThumbnail(filename.s,width.l,height.l,*bitmap.l,*params.l,*info.l)
	gflLoadThumbnailFromHandle(handle.l,width.l,height.l,*bitmap.l,*params.l,info.l)
	gflLoadThumbnailFromMemory(*dat.l,data_length.l,width.l,height.l,*bitmap.l,*params.l,*info.l)
	gflGetDefaultSaveParams(*params.l)
	gflSaveBitmap(filename.s,bitmap.l,*params.l)
	gflSaveBitmapIntoHandle(handle.l,*bitmap.l,*params.l)
	gflSaveBitmapIntoMemory(*dat.b,*data_length.l,*bitmap.l,*params.l)
	gflFileCreate(*handle.l,filename.s,image_count.l,*params.l)
	gflFileAddPicture(handle.l,bitmap.l)
	gflFileClose(handle.l)
	gflAllockBitmap(type.l,width.l,height.l,line_padding.l,*color.l)
	gflAllockBitmapEx(type.l,width.l,height.l,bits_per_component.w,padding.l,*color.l)
	gflFreeBitmap(*bitmap.l)
	gflFreeBitmapData(*bitmap.l)
	gflCloneBitmap(*bitmap.l)
	gflBitmapSetName(*bitmap.l,name.s)
	gflBitmapHasEXIF(*bitmap.l)
	gflBitmapHasIPTC(*bitmap.l)
	gflBitmapHasICCProfile(*bitmap.l)
	gflBitmapRemoveEXIFThumbnail(*bitmap.l)
	gflBitmapRemoveICCProfile(*bitmap.l)
	gflBitmapGetICCProfile(*bitmap.l,*pData.b,*pLength.l)
	gflBitmapCopyICCProfile(*bitmap_src.l,*bitmap_dst.l)
	gflBitmapRemoveMetaData(*bitmap.l)
	gflLoadEXIF(filename.s,flags.l)
	gflBitmapGetIPTC(*bitmap.l)
	gflBitmapGetIPTCValue(*bitmap.l,id.l,value.s,value_length.l)
	gflNewIPTC()
	gflFreeIPTC(*iptc_dat.l)
	gflSetIPTCValue(*iptc_dat.l,id.l,value.s)
	gflRemoveIPTCValue(*iptc_dat.l,id.l)
	gflLoadIPTC(filename.s)
	gflSaveIPTC(filename.s,*iptc_dat.l)
	gflBitmapSetIPTC(*bitmap.l,*iptc_dat.l)
	gflBitmapGetEXIF(*bitmap.l,flags.l)
	gflBitmapGetEXIFValue(*bitmap.l,tag.l,value.s,value_length.l)
	gflFreeEXIF(*exif_dat.l)
	gflBitmapSetComment(*bitmap.l,comment.s)
	gflBitmapGetEXIF2(*bitmap.l)
	gflFreeEXIF2(*exif_dat.l)
	gflBitmapSetEXIF2(*bitmap.l,*exif.l)
	gflBitmapSetEXIFValueString2(*exif.l,ifd.w,tag.w,value.s)
	gflBitmapSetEXIFValueInt2(*exif.l,ifd.w,tag.w,format.l,value.l)
	gflBitmapSetEXIFValueRational2(*exif.l,ifd.w,tag.w,p.l,q.l)
	gflJPEGGetComment(filename.s,comment.s,max_size.w)
	gflJPEGSetComment(filename.s,comment.s)
	gflPNGGetComment(filename.s,comment.s,max_size.w)
	gflPNGSetComment(filename.s,comment.s)
	gflIsLutFile(filename.s)
	gflIsCompatibleLutFile(filename.s,components_per_pixel.l,bits_per_component.l,*lut_type.l)
	gflApplyLutFile(*bitmap_src.l,*bitmap_dst.l,filename.s,lut_type.l)
	gflResize(*src.l,*dst.l,width.l,height.l,method.l,flags.l)
	gflChangeColorDepth(*src.l,*dst.l,mode.l,params.l)
	gflGetColorAt(*src.l,x.l,y.l,*color.l)
	gflSetColorAt(*src.l,x.l,y.l,*color.l)
	gflGetColorAtEx(*src.l,*ptr.b,*color.l)
	gflSetColorAtEx(*src.l,*ptr.b,*color.l)
	gflFlipVertical(*src.l,*dst.l)
	gflFlipHorizontal(*src.l,*dst.l)
	gflCrop(*src.l,*dst.l,*rect.l)
	gflAutoCrop(*src.l,*dst.l,color.l,tolerance.l)
	gflAutoCrop2(*src.l,*dst.l,color.l,tolerance.l)
	gflResizeCanvas(*src.l,*dst.l,width.l,height.l,mode.l,*color.l)
	gflScaleToGrey(*src.l,*dst.l,width.l,height.l)
	gflRotate(*src.l,*dst.l,angle.l,background_color.l)
	gflRotateFine(*src.l,*dst.l,angle.d,background_color.l)
	gflReplaceColor(*src.l,*dst.l,color.l,new_color.l,tolerance.l)
	gflBitblt(*src.l,rect.l,dst.l,x_dest.l,y_dest.l)
	gflBitbltEx(*src.l,rect.l,dst.l,x_dest.l,y_dest.l)
	gflMerge(src.l,origin.l,opacity.l,num_bitmap.l,*dst.l)
	gflCombineAlpha(*src.l,*dst.l,*color.l)
	gflSetTransparentColor(*src.l,*dst.l,*mask_color.l,*back_color.l)
EndImport

Import "../lib/libgfle.lib"
	gflGetNumberOfColorsUsed(src.l)
	gflNegative(src.l,*dst.l)
	gflBrightness(src.l,*dst.l,brightness.l)
	gflContrast(src.l,*dst.l,contrast.l)
	gflGamma(src.l,*dst.l,gamma.d)
	gflLogCorrection(src.l,*dst.l)
	gflNormalize(src.l,*dst.l)
	gflEqualize(src.l,*dst.l)
	gflEqualizeOnLuminance(src.l,*dst.l)
	gflBalance(src.l,*dst.l,*arg.l)
	gflAdjust(src.l,*dst.l,brightness.l,contrast.l,gamma.d)
	gflAdjustHLS(src.l,*bdst.l,h_increment.l,l_increment.l,s_increment.l)
	gflAutomaticContrast(src.l,*dst.l)
	gflAutomaticLevels(src.l,*dst.l)
	gflAverage(src.l,*dst.l,filter_size.l)
	gflSoften(src.l,*dst.l,percentage.l)
	gflBlur(src.l,*dst.l,percentage.l)
	gflGaussianBlur(src.l,*dst.l,filter_size.l)
	gflMaximum(src.l,*dst.l,filter_size.l)
	gflMinimum(src.l,*dst.l,filter_size.l)
	gflMedianBox(src.l,*dst.l,filter_size.l)
	gflMedianCross(src.l,*dst.l,filter_size.l)
	gflSharpen(src.l,*dst.l,percentage.l)
	gflEnhanceDetail(src.l,*dst.l)
	gflEnhanceFocus(src.l,*dst.l)
	gflFocusRestoration(src.l,*dst.l)
	gflEdgeDetectLight(src.l,*dst.l)
	gflEdgeDetectMedium(src.l,*dst.l)
	gflEdgeDetectHeavy(src.l,*dst.l)
	gflEmboss(src.l,*dst.l)
	gflEmbossMore(src.l,*dst.l)
	gflSepia(src.l,*bdst.l,percent.l)
	gflSepiaEx(src.l,*bdst.l,percent.l,*color.l)
	gflReduceNoise(src.l,*bdst.l)
	gflDropShadow(*src.l,*dst.l,size.l,depth.l,keep_size.l)
	gflConvolve(src.l,*dst.l,*filter.l)
	gflSwapColors(src.l,*dst.l,mode.l)
	gflJpegLosslessTransform(*filename.s,transform.l)
	gflConvertBitmapIntoDIB(bitmap.l,hDIB.l)
	gflConvertBitmapIntoDIBSection(bitmap.l,hDIB.l)
	gflConvertBitmapIntoDDB(bitmap.l,hBitmap.l)
	gflConvertBitmapIntoDDBEx(bitmap.l,hBitmap.l,*background_color.l)
	gflConvertDIBIntoBitmap(hDIB.l,*bitmap.l)
	gflConvertDDBIntoBitmap(hBitmap.l,*bitmap.l)
	gflLoadBitmapIntoDIB(*filename.s,hDIB.l,params.l,info.l)
	gflLoadBitmapIntoDIBSection(*filename.s,hDIB.l,params.l,info.l)
	gflLoadBitmapIntoDDB(*filename.s,hBitmap.l,params.l,info.l)
	gflAddText(bitmap.l,*text.s,*font_name.s,x.l,y.l,font_size.l,orientation.l,italic.b,bold.b,strike_out.b,underline.b,antialias.b,color.l)
	gflAddTextW(bitmap.l,*text.s,*font_name.s,x.l,y.l,font_size.l,orientation.l,italic.b,bold.b,strike_out.b,underline.b,antialias.b,color.l)
	gflGetTextExtent(*text.s,*font_name.s,font_size.l,orientation.l,italic.b,bold.b,strike_out.b,underline.b,antialias.b,*text_width.l,*text_height.l)
	gflImportFromClipboard(*bitmap.l)
	gflExportIntoClipboard(bitmap.l)
	gflImportFromHWND(hwnd.l,rect.l,*bitmap.l)
	gflDrawPointColor(src.l,x.l,y.l,line_width.l,*line_color.l,*bdst.l)
	gflDrawLineColor(src.l,x0.l,y0.l,x1.l,y1.l,line_width.l,*line_color.l,line_style.l,*bdst.l)
	gflDrawPolylineColor(src.l,points.l,num_points.l,line_width.l,*line_color.l,line_style.l,*bdst.l)
	gflDrawRectangleColor(src.l,x0.l,y0.l,width.l,height.l,*fill_color.l,line_width.l,*line_color.l,line_style.l,*bdst.l)
	gflDrawPolygonColor(src.l,points.l,num_points.l,*fill_color.l,line_width.l,*line_color.l,line_style.l,*bdst.l)
	gflDrawCircleColor(src.l,x.l,y.l,radius.l,*fill_color.l,line_width.l,*line_color.l,line_style.l,*dst.l)
EndImport

;
; Libgfl.h
;

#GFL_VERSION = "2.67"
#GFL_FALSE = 0
#GFL_TRUE = 1
#GFL_NO_ERROR = 0
#GFL_ERROR_FILE_OPEN = 1
#GFL_ERROR_FILE_READ = 2
#GFL_ERROR_FILE_CREATE = 3
#GFL_ERROR_FILE_WRITE = 4
#GFL_ERROR_NO_MEMORY = 5
#GFL_ERROR_UNKNOWN_FORMAT = 6
#GFL_ERROR_BAD_BITMAP = 7
#GFL_ERROR_BAD_FORMAT_INDEX = 10
#GFL_ERROR_BAD_PARAMETERS = 50
#GFL_UNKNOWN_ERROR = 255
#GFL_LEFT = $00
#GFL_RIGHT = $01
#GFL_TOP = $00
#GFL_BOTTOM = $10
#GFL_TOP_LEFT = (#GFL_TOP|#GFL_LEFT)
#GFL_BOTTOM_LEFT = (#GFL_BOTTOM|#GFL_LEFT)
#GFL_TOP_RIGHT = (#GFL_TOP|#GFL_RIGHT)
#GFL_BOTTOM_RIGHT = (#GFL_BOTTOM|#GFL_RIGHT)
#GFL_NO_COMPRESSION = 0
#GFL_RLE = 1
#GFL_LZW = 2
#GFL_JPEG = 3
#GFL_ZIP = 4
#GFL_SGI_RLE = 5
#GFL_CCITT_RLE = 6
#GFL_CCITT_FAX3 = 7
#GFL_CCITT_FAX3_2D = 8
#GFL_CCITT_FAX4 = 9
#GFL_WAVELET = 10
#GFL_LZW_PREDICTOR = 11
#GFL_UNKNOWN_COMPRESSION = 255
#GFL_BINARY = $0001
#GFL_GREY = $0002
#GFL_COLORS = $0004
#GFL_RGB = $0010
#GFL_RGBA = $0020
#GFL_BGR = $0040
#GFL_ABGR = $0080
#GFL_BGRA = $0100
#GFL_ARGB = $0200
#GFL_CMYK = $0400
#GFL_24BITS = (#GFL_RGB|#GFL_BGR)
#GFL_32BITS = (#GFL_RGBA|#GFL_ABGR|#GFL_BGRA|#GFL_ARGB|#GFL_CMYK)
#GFL_TRUECOLORS = (#GFL_24BITS|#GFL_32BITS)
#GFL_24TYPEBITS = $1000
#GFL_32TYPEBITS = $2000
#GFL_48TYPEBITS = $4000
#GFL_64TYPEBITS = $8000
Structure GFL_COLORMAP
  Red.GFL_UINT8[256]
  Green.GFL_UINT8[256]
  Blue.GFL_UINT8[256]
  Alpha.GFL_UINT8[256]
EndStructure

Structure GFL_COLOR
  Red.GFL_UINT16
  Green.GFL_UINT16
  Blue.GFL_UINT16
  Alpha.GFL_UINT16
EndStructure

Structure GFL_BITMAP
  Type.GFL_BITMAP_TYPE
  Origin.GFL_ORIGIN
  Width.GFL_INT32
  Height.GFL_INT32
  BytesPerLine.GFL_UINT32
  LinePadding.GFL_INT16
  BitsPerComponent.GFL_UINT16
  ComponentsPerPixel.GFL_UINT16
  BytesPerPixel.GFL_UINT16
  Xdpi.GFL_UINT16
  Ydpi.GFL_UINT16
  TransparentIndex.GFL_INT16
  Reserved.GFL_INT16
  ColorUsed.GFL_INT32
  *ColorMap.GFL_COLORMAP
  *Dat.GFL_UINT8
  *Comment.char
  *MetaData.void
  XOffset.GFL_INT32
  YOffset.GFL_INT32
  *Name.char
EndStructure

#GFL_CORDER_INTERLEAVED = 0
#GFL_CORDER_SEQUENTIAL = 1
#GFL_CORDER_SEPARATE = 2
#GFL_CTYPE_GREYSCALE = 0
#GFL_CTYPE_RGB = 1
#GFL_CTYPE_BGR = 2
#GFL_CTYPE_RGBA = 3
#GFL_CTYPE_ABGR = 4
#GFL_CTYPE_CMY = 5
#GFL_CTYPE_CMYK = 6
#GFL_LUT_TO8BITS = 1
#GFL_LUT_TO10BITS = 2
#GFL_LUT_TO12BITS = 3
#GFL_LUT_TO16BITS = 4
#GFL_LOAD_SKIP_ALPHA = $00000001
#GFL_LOAD_IGNORE_READ_ERROR = $00000002
#GFL_LOAD_BY_EXTENSION_ONLY = $00000004
#GFL_LOAD_READ_ALL_COMMENT = $00000008
#GFL_LOAD_FORCE_COLOR_MODEL = $00000010
#GFL_LOAD_PREVIEW_NO_CANVAS_RESIZE = $00000020
#GFL_LOAD_BINARY_AS_GREY = $00000040
#GFL_LOAD_ORIGINAL_COLORMODEL = $00000080
#GFL_LOAD_ONLY_FIRST_FRAME = $00000100
#GFL_LOAD_ORIGINAL_DEPTH = $00000200
#GFL_LOAD_METADATA = $00000400
#GFL_LOAD_COMMENT = $00000800
#GFL_LOAD_HIGH_QUALITY_THUMBNAIL = $00001000
#GFL_LOAD_EMBEDDED_THUMBNAIL = $00002000
#GFL_LOAD_ORIENTED_THUMBNAIL = $00004000
#GFL_LOAD_ORIGINAL_EMBEDDED_THUMBNAIL = $00008000
#GFL_LOAD_ORIENTED = $00008000

Structure GFL_LOAD_CALLBACKS
  readcb.GFL_READ_CALLBACK
  Tell.GFL_TELL_CALLBACK
  Seek.GFL_SEEK_CALLBACK
  AllocateBitmap.GFL_ALLOCATEBITMAP_CALLBACK
  *AllocateBitmapParams.void
  Progress.GFL_PROGRESS_CALLBACK
  *ProgressParams.void
  WantCancel.GFL_WANTCANCEL_CALLBACK
  *WantCancelParams.void
EndStructure

Structure GFL_LOAD_PARAMS
  Flags.GFL_UINT32
  FormatIndex.GFL_INT32
  ImageWanted.GFL_INT32
  Origin.GFL_ORIGIN
  ColorModel.GFL_BITMAP_TYPE
  LinePadding.GFL_UINT32
  DefaultAlpha.GFL_UINT8
  ;/*
	;*
	;*/
  PsdNoAlphaForNonLayer.GFL_UINT8
  PngComposeWithAlpha.GFL_UINT8
  WMFHighResolution.GFL_UINT8
  ;/*
	;* RAW/YUV only
	;*/
  Width.GFL_INT32
  Height.GFL_INT32
  Offset.GFL_UINT32
  ;/*
	;* RAW only
	;*/
  ChannelOrder.GFL_CORDER
  ChannelType.GFL_CTYPE
  ;/*
	;* PCD only
  ;*/
  PcdBase.GFL_UINT16
  ;/*
	;* EPS/PS/AI/PDF only
	;*/
  EpsDpi.GFL_UINT16
  EpsWidth.GFL_INT32
  EpsHeight.GFL_INT32
  ;/*
	;* DPX/Cineon only
	;*/

  LutType.GFL_LUT_TYPE
  Reserved3.GFL_UINT16
	*LutData.GFL_UINT16
  LutFilename.s
  ;/* 
	;* Camera RAW only
	;*/
  CameraRawUseAutomaticBalance.GFL_UINT8
  CameraRawUseCameraBalance.GFL_UINT8
  Reserved4.GFL_UINT16
  CameraRawGamma.f
  CameraRawBrightness.f
  CameraRawRedScaling.f
  CameraRawBlueScaling.f
  CameraRawFilterDomain.f
  CameraRawFilterRange.f
  
  Callbacks.GFL_LOAD_CALLBACKS
  *UserParams.void
EndStructure

#GFL_SAVE_REPLACE_EXTENSION = $0001
#GFL_SAVE_WANT_FILENAME = $0002
#GFL_SAVE_ANYWAY = $0004
#GFL_SAVE_ICC_PROFILE = $0008

Structure Callbacks
  Flags.GFL_UINT32
  FormatIndex.GFL_INT32
  Compression.GFL_COMPRESSION
  Quality.GFL_INT16
  CompressionLevel.GFL_INT16
  Interlaced.GFL_BOOL
  Progressive.GFL_BOOL
  OptimizeHuffmanTable.GFL_BOOL
  InAscii.GFL_BOOL
  LutType.GFL_LUT_TYPE
  DpxByteOrder.GFL_UINT8
  Reserved3.GFL_UINT8
  Offset.GFL_UINT32
  ChannelOrder.GFL_CORDER
  ChannelType.GFL_CTYPE
  Write.GFL_WRITE_CALLBACK
  Tell.GFL_TELL_CALLBACK
  Seek.GFL_SEEK_CALLBACK
  GetLine.GFL_VIRTUAL_SAVE_CALLBACK
  *GetLineParams.void
EndStructure

#GFL_CM_RGB = 0
#GFL_CM_GREY = 1
#GFL_CM_CMY = 2
#GFL_CM_CMYK = 3
#GFL_CM_YCBCR = 4
#GFL_CM_YUV16 = 5
#GFL_CM_LAB = 6
#GFL_CM_LOGLUV = 7
#GFL_CM_LOGL = 8

Structure GFL_FILE_INFORMATION
  Type.GFL_BITMAP_TYPE
  Origin.GFL_ORIGIN
  Width.GFL_INT32
  Height.GFL_INT32
  FormatIndex.GFL_INT32
  FormatName.b[8]
  Description.b[64]
  Xdpi.GFL_UINT16
  Ydpi.GFL_UINT16
  BitsPerComponent.GFL_UINT16
  ComponentsPerPixel.GFL_UINT16
  NumberOfImages.GFL_INT32
  FileSize.GFL_UINT32
  ColorModel.GFL_COLORMODEL
  Compression.GFL_COMPRESSION
  CompressionDescription.b[64]
  XOffset.GFL_INT32
  YOffset.GFL_INT32
EndStructure

#GFL_READ = $01
#GFL_WRITE = $02
Structure GFL_FORMAT_INFORMATION
  Index.GFL_INT32
  Name.b[8]
  Description.b[64]
  Status.GFL_UINT32
  NumberOfExtension.GFL_UINT32
  Extension.b[128]
EndStructure

Structure GFL_IPTC_ENTRY
  Id.GFL_UINT32
	Name.s
  Value.s
EndStructure

Structure GFL_IPTC_DATA
  NumberOfItems.GFL_UINT32
	*ItemsList.GFL_IPTC_ENTRY
EndStructure

#GFL_IPTC_BYLINE = $50
#GFL_IPTC_BYLINETITLE = $55
#GFL_IPTC_CREDITS = $6e
#GFL_IPTC_SOURCE = $73
#GFL_IPTC_CAPTIONWRITER = $7a
#GFL_IPTC_CAPTION = $78
#GFL_IPTC_HEADLINE = $69
#GFL_IPTC_SPECIALINSTRUCTIONS = $28
#GFL_IPTC_OBJECTNAME = $05
#GFL_IPTC_DATECREATED = $37
#GFL_IPTC_RELEASEDATE = $1e
#GFL_IPTC_TIMECREATED = $3c
#GFL_IPTC_RELEASETIME = $23
#GFL_IPTC_CITY = $5a
#GFL_IPTC_STATE = $5f
#GFL_IPTC_COUNTRY = $65
#GFL_IPTC_COUNTRYCODE = $64
#GFL_IPTC_SUBLOCATION = $5c
#GFL_IPTC_ORIGINALTRREF = $67
#GFL_IPTC_CATEGORY = $0f
#GFL_IPTC_COPYRIGHT = $74
#GFL_IPTC_EDITSTATUS = $07
#GFL_IPTC_PRIORITY = $0a
#GFL_IPTC_OBJECTCYCLE = $4b
#GFL_IPTC_JOBID = $16
#GFL_IPTC_PROGRAM = $41
#GFL_IPTC_KEYWORDS = $19
#GFL_IPTC_SUPCATEGORIES = $14
#GFL_IPTC_CONTENT_LOCATION = $1b
#GFL_IPTC_PROGRAM_VERSION = $46
#GFL_IPTC_CONTACT = $76
#GFL_EXIF_MAIN_IFD = $0001
#GFL_EXIF_IFD_0 = $0002
#GFL_EXIF_INTEROPERABILITY_IFD = $0004
#GFL_EXIF_IFD_THUMBNAIL = $0008
#GFL_EXIF_GPS_IFD = $0010
#GFL_EXIF_MAKERNOTE_IFD = $0020
#GFL_EXIF_MAKER = $010F
#GFL_EXIF_MODEL = $0110
#GFL_EXIF_ORIENTATION = $0112
#GFL_EXIF_EXPOSURETIME = $829A
#GFL_EXIF_FNUMBER = $829D
#GFL_EXIF_DATETIME_ORIGINAL = $9003
#GFL_EXIF_SHUTTERSPEED = $9201
#GFL_EXIF_APERTURE = $9202
#GFL_EXIF_MAXAPERTURE = $9205
#GFL_EXIF_FOCALLENGTH = $920A
Structure GFL_EXIF_ENTRY
  Flag.GFL_UINT32
  Tag.GFL_UINT32
  Name.s
  Value.s
EndStructure

Structure GFL_EXIF_DATA
  NumberOfItems.GFL_UINT32
  *ItemsList.GFL_EXIF_ENTRY
EndStructure

#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
Structure GFL_EXIF_ENTRYEX
  Tag.GFL_UINT16
  Format.GFL_UINT16
  Ifd.GFL_INT32
  NumberOfComponents.GFL_INT32
  Value.GFL_UINT32
  DataLength.GFL_INT32
  *Dat.char
  *Nxt.gfl_exif_entryex
EndStructure

Structure GFL_EXIF_DATAEX
  *Root.GFL_EXIF_ENTRYEX
  UseMsbf.GFL_INT32
EndStructure

#GFL_SAVE_PARAMS_QUALITY = 0
#GFL_SAVE_PARAMS_COMPRESSION_LEVEL = 1
#GFL_SAVE_PARAMS_INTERLACED = 2
#GFL_SAVE_PARAMS_PROGRESSIVE = 3
#GFL_SAVE_PARAMS_OPTIMIZE_HUFFMAN = 4
#GFL_SAVE_PARAMS_IN_ASCII = 5
#GFL_SAVE_PARAMS_LUT = 6
#GFL_EXIF_WANT_MAKERNOTES = $0001
#GFL_RESIZE_QUICK = 0
#GFL_RESIZE_BILINEAR = 1
#GFL_RESIZE_HERMITE = 2
#GFL_RESIZE_GAUSSIAN = 3
#GFL_RESIZE_BELL = 4
#GFL_RESIZE_BSPLINE = 5
#GFL_RESIZE_MITSHELL = 6
#GFL_RESIZE_LANCZOS = 7
#GFL_MODE_TO_BINARY = 1
#GFL_MODE_TO_4GREY = 2
#GFL_MODE_TO_8GREY = 3
#GFL_MODE_TO_16GREY = 4
#GFL_MODE_TO_32GREY = 5
#GFL_MODE_TO_64GREY = 6
#GFL_MODE_TO_128GREY = 7
#GFL_MODE_TO_216GREY = 8
#GFL_MODE_TO_256GREY = 9
#GFL_MODE_TO_8COLORS = 12
#GFL_MODE_TO_16COLORS = 13
#GFL_MODE_TO_32COLORS = 14
#GFL_MODE_TO_64COLORS = 15
#GFL_MODE_TO_128COLORS = 16
#GFL_MODE_TO_216COLORS = 17
#GFL_MODE_TO_256COLORS = 18
#GFL_MODE_TO_RGB = 19
#GFL_MODE_TO_RGBA = 20
#GFL_MODE_TO_BGR = 21
#GFL_MODE_TO_ABGR = 22
#GFL_MODE_TO_BGRA = 23
#GFL_MODE_TO_ARGB = 24
#GFL_MODE_TO_TRUE_COLORS = #GFL_MODE_TO_RGB
#GFL_MODE_NO_DITHER = 0
#GFL_MODE_PATTERN_DITHER = 1
#GFL_MODE_HALTONE45_DITHER = 2
#GFL_MODE_HALTONE90_DITHER = 3
#GFL_MODE_ADAPTIVE = 4
#GFL_MODE_FLOYD_STEINBERG = 5
Structure GFL_RECT
  x.GFL_INT32
  y.GFL_INT32
  w.GFL_INT32
  h.GFL_INT32
EndStructure

Structure GFL_POINT
  x.GFL_INT32
  y.GFL_INT32
EndStructure

#GFL_CANVASRESIZE_TOPLEFT = 0
#GFL_CANVASRESIZE_TOP = 1
#GFL_CANVASRESIZE_TOPRIGHT = 2
#GFL_CANVASRESIZE_LEFT = 3
#GFL_CANVASRESIZE_CENTER = 4
#GFL_CANVASRESIZE_RIGHT = 5
#GFL_CANVASRESIZE_BOTTOMLEFT = 6
#GFL_CANVASRESIZE_BOTTOM = 7
#GFL_CANVASRESIZE_BOTTOMRIGHT = 8

;
; Libgfle.h
;
Structure GFL_FILTER
  Size.GFL_INT16
  Matrix.GFL_INT16[49] ; 7*7
  Divisor.GFL_INT16
  Bias.GFL_INT16
EndStructure

#GFL_SWAPCOLORS_RBG = 0
#GFL_SWAPCOLORS_BGR = 1
#GFL_SWAPCOLORS_BRG = 2
#GFL_SWAPCOLORS_GRB = 3
#GFL_SWAPCOLORS_GBR = 4
#GFL_LOSSLESS_TRANSFORM_NONE = 0
#GFL_LOSSLESS_TRANSFORM_ROTATE90 = 1
#GFL_LOSSLESS_TRANSFORM_ROTATE180 = 2
#GFL_LOSSLESS_TRANSFORM_ROTATE270 = 3
#GFL_LOSSLESS_TRANSFORM_VERTICAL_FLIP = 4
#GFL_LOSSLESS_TRANSFORM_HORIZONTAL_FLIP = 5
#GFL_LINE_STYLE_SOLID = 0
#GFL_LINE_STYLE_DASH = 1
#GFL_LINE_STYLE_DOT = 2
#GFL_LINE_STYLE_DASHDOT = 3
#GFL_LINE_STYLE_DASHDOTDOT = 4
If I've messed anything up just change the macros :)

Posted: Sat May 26, 2007 12:27 am
by byo
From the website wrote:Import about 400 graphic file formats
Export about 50 graphic file formats
Looks good to me. Thanks.