Page 1 of 1

FreeImage wrapper

Posted: Mon May 21, 2007 12:20 am
by Inner
freeimage_functions.pb

Code: Select all

Procedure FreeImage_OutputMessageProc()
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"FreeImage_OutputMessageProc")
EndProcedure

Procedure FreeImage_AcquireMemory(stream.l,dat.l,sizeinbytes.d)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_AcquireMemory@12",stream.l,dat.l,sizeinbytes.d)
EndProcedure

Procedure FreeImage_AdjustBrightness(dib.l,percentage.d)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_AdjustBrightness@12",dib.l,percentage.d)
EndProcedure

Procedure FreeImage_AdjustContrast(dib.l,percentage.d)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_AdjustContrast@12",dib.l,percentage.d)
EndProcedure

Procedure FreeImage_AdjustCurve(dib.l,lut.l,channel.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_AdjustCurve@12",dib.l,lut.l,channel.l)
EndProcedure

Procedure FreeImage_AdjustGamma(dib.l,gamma.d)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_AdjustGamma@12",dib.l,gamma.d)
EndProcedure

Procedure FreeImage_Allocate(width.l,height.l,bpp.l,red_mask.l,green_mask.l,blue_mask.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_Allocate@24",width.l,height.l,bpp.l,red_mask.l,green_mask.l,blue_mask.l)
EndProcedure

Procedure FreeImage_AllocateT(type.l,width.l,height.l,bpp.l,red_mask.l,green_mask.l,blue_mask.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_AllocateT@28",type.l,width.l,height.l,bpp.l,red_mask.l,green_mask.l,blue_mask.l)
EndProcedure

Procedure FreeImage_AppendPage(multibitmap.l,dat.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_AppendPage@8",multibitmap.l,dat.l)
EndProcedure

Procedure FreeImage_Clone(dib.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_Clone@4",dib.l)
EndProcedure

Procedure FreeImage_CloneTag(tag.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_CloneTag@4",tag.l)
EndProcedure

Procedure FreeImage_CloseMemory(stream.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_CloseMemory@4",stream.l)
EndProcedure

Procedure FreeImage_CloseMultiBitmap(multibitmap.l,flags.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_CloseMultiBitmap@8",multibitmap.l,flags.l)
EndProcedure

Procedure FreeImage_ColorQuantize(dib.l,quantize.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ColorQuantize@8",dib.l,quantize.l)
EndProcedure

Procedure FreeImage_ColorQuantizeEx(dib.l,quantize.l,PaletteSize.l,ReserveSize.l,ReservePalette.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ColorQuantizeEx@20",dib.l,quantize.l,PaletteSize.l,ReserveSize.l,ReservePalette.l)
EndProcedure

Procedure FreeImage_Composite(fg.l,useFileBkg.l,appBkColor.l,bg.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_Composite@16",fg.l,useFileBkg.l,appBkColor.l,bg.l)
EndProcedure

Procedure FreeImage_ConvertFromRawBits(bits.l,width.l,height.l,pitch.l,bpp.l,red_mask.l,green_mask.l,blue_mask.l,topdown.l);)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertFromRawBits@36",bits.l,width.l,height.l,pitch.l,bpp.l,red_mask.l,green_mask.l,blue_mask.l,topdown.l);)
EndProcedure

Procedure FreeImage_ConvertLine16To24_555(target.l,source.l,width_in_pixels.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertLine16To24_555@12",target.l,source.l,width_in_pixels.l)
EndProcedure

Procedure FreeImage_ConvertLine16To24_565(target.l,source.l,width_in_pixels.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertLine16To24_565@12",target.l,source.l,width_in_pixels.l)
EndProcedure

Procedure FreeImage_ConvertLine16To32_555(target.l,source.l,width_in_pixels.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertLine16To32_555@12",target.l,source.l,width_in_pixels.l)
EndProcedure

Procedure FreeImage_ConvertLine16To32_565(target.l,source.l,width_in_pixels.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertLine16To32_565@12",target.l,source.l,width_in_pixels.l)
EndProcedure

Procedure FreeImage_ConvertLine16To4_555(target.l,source.l,width_in_pixels.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertLine16To4_555@12",target.l,source.l,width_in_pixels.l)
EndProcedure

Procedure FreeImage_ConvertLine16To4_565(target.l,source.l,width_in_pixels.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertLine16To4_565@12",target.l,source.l,width_in_pixels.l)
EndProcedure

Procedure FreeImage_ConvertLine16To8_555(target.l,source.l,width_in_pixels.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertLine16To8_555@12",target.l,source.l,width_in_pixels.l)
EndProcedure

Procedure FreeImage_ConvertLine16To8_565(target.l,source.l,width_in_pixels.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertLine16To8_565@12",target.l,source.l,width_in_pixels.l)
EndProcedure

Procedure FreeImage_ConvertLine16_555_To16_565(target.l,source.l,width_in_pixels.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertLine16_555_To16_565@12",target.l,source.l,width_in_pixels.l)
EndProcedure

Procedure FreeImage_ConvertLine16_565_To16_555(target.l,source.l,width_in_pixels.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertLine16_565_To16_555@12",target.l,source.l,width_in_pixels.l)
EndProcedure

Procedure FreeImage_ConvertLine1To16_555(target.l,source.l,width_in_pixels.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertLine1To16_555@16",target.l,source.l,width_in_pixels.l)
EndProcedure

Procedure FreeImage_ConvertLine1To16_565(target.l,source.l,width_in_pixels.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertLine1To16_565@16",target.l,source.l,width_in_pixels.l)
EndProcedure

Procedure FreeImage_ConvertLine1To24(target.l,source.l,width_in_pixels.l,palette.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertLine1To24@16",target.l,source.l,width_in_pixels.l,palette.l)
EndProcedure

Procedure FreeImage_ConvertLine1To32(target.l,source.l,width_in_pixels.l,palette.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertLine1To32@16",target.l,source.l,width_in_pixels.l,palette.l)
EndProcedure

Procedure FreeImage_ConvertLine1To4(target.l,source.l,width_in_pixels.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertLine1To4@12",target.l,source.l,width_in_pixels.l)
EndProcedure

Procedure FreeImage_ConvertLine1To8(target.l,source.l,width_in_pixels.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertLine1To8@12",target.l,source.l,width_in_pixels.l)
EndProcedure

Procedure FreeImage_ConvertLine24To16_555(target.l,source.l,width_in_pixels.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertLine24To16_555@12",target.l,source.l,width_in_pixels.l)
EndProcedure

Procedure FreeImage_ConvertLine24To16_565(target.l,source.l,width_in_pixels.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertLine24To16_565@12",target.l,source.l,width_in_pixels.l)
EndProcedure

Procedure FreeImage_ConvertLine24To32(target.l,source.l,width_in_pixels.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertLine24To32@12",target.l,source.l,width_in_pixels.l)
EndProcedure

Procedure FreeImage_ConvertLine24To4(target.l,source.l,width_in_pixels.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertLine24To4@12",target.l,source.l,width_in_pixels.l)
EndProcedure

Procedure FreeImage_ConvertLine24To8(target.l,source.l,width_in_pixels.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertLine24To8@12",target.l,source.l,width_in_pixels.l)
EndProcedure

Procedure FreeImage_ConvertLine32To16_555(target.l,source.l,width_in_pixels.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertLine32To16_555@12",target.l,source.l,width_in_pixels.l)
EndProcedure

Procedure FreeImage_ConvertLine32To16_565(target.l,source.l,width_in_pixels.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertLine32To16_565@12",target.l,source.l,width_in_pixels.l)
EndProcedure

Procedure FreeImage_ConvertLine32To24(target.l,source.l,width_in_pixels.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertLine32To24@12",target.l,source.l,width_in_pixels.l)
EndProcedure

Procedure FreeImage_ConvertLine32To4(target.l,source.l,width_in_pixels.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertLine32To4@12",target.l,source.l,width_in_pixels.l)
EndProcedure

Procedure FreeImage_ConvertLine32To8(target.l,source.l,width_in_pixels.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertLine32To8@12",target.l,source.l,width_in_pixels.l)
EndProcedure

Procedure FreeImage_ConvertLine4To16_555(target.l,source.l,width_in_pixels.l,palette.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertLine4To16_555@16",target.l,source.l,width_in_pixels.l,palette.l)
EndProcedure

Procedure FreeImage_ConvertLine4To16_565(target.l,source.l,width_in_pixels.l,palette.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertLine4To16_565@16",target.l,source.l,width_in_pixels.l,palette.l)
EndProcedure

Procedure FreeImage_ConvertLine4To24(target.l,source.l,width_in_pixels.l,palette.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertLine4To24@16",target.l,source.l,width_in_pixels.l,palette.l)
EndProcedure

Procedure FreeImage_ConvertLine4To32(target.l,source.l,width_in_pixels.l,palette.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertLine4To32@16",target.l,source.l,width_in_pixels.l,palette.l)
EndProcedure

Procedure FreeImage_ConvertLine4To8(target.l,source.l,width_in_pixels.l,palette.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertLine4To8@12",target.l,source.l,width_in_pixels.l,palette.l)
EndProcedure

Procedure FreeImage_ConvertLine8To16_555(target.l,source.l,width_in_pixels.l,palette.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertLine8To16_555@16",target.l,source.l,width_in_pixels.l,palette.l)
EndProcedure

Procedure FreeImage_ConvertLine8To16_565(target.l,source.l,width_in_pixels.l,palette.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertLine8To16_565@16",target.l,source.l,width_in_pixels.l,palette.l)
EndProcedure

Procedure FreeImage_ConvertLine8To24(target.l,source.l,width_in_pixels.l,palette.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertLine8To24@16",target.l,source.l,width_in_pixels.l,palette.l)
EndProcedure

Procedure FreeImage_ConvertLine8To32(target.l,source.l,width_in_pixels.l,palette.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertLine8To32@16",target.l,source.l,width_in_pixels.l,palette.l)
EndProcedure

Procedure FreeImage_ConvertLine8To4(target.l,source.l,width_in_pixels.l,palette.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertLine8To4@16",target.l,source.l,width_in_pixels.l,palette.l)
EndProcedure

Procedure FreeImage_ConvertTo16Bits555(dib.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertTo16Bits555@4",dib.l)
EndProcedure

Procedure FreeImage_ConvertTo16Bits565(dib.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertTo16Bits565@4",dib.l)
EndProcedure

Procedure FreeImage_ConvertTo24Bits(dib.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertTo24Bits@4",dib.l)
EndProcedure

Procedure FreeImage_ConvertTo32Bits(dib.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertTo32Bits@4",dib.l)
EndProcedure

Procedure FreeImage_ConvertTo4Bits(dib.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertTo4Bits@4",dib.l)
EndProcedure

Procedure FreeImage_ConvertTo8Bits(dib.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertTo8Bits@4",dib.l)
EndProcedure

Procedure FreeImage_ConvertToGreyscale(dib.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertToGreyscale@4",dib.l)
EndProcedure

Procedure FreeImage_ConvertToRGBF(dib.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertToRGBF@4",dib.l)
EndProcedure

Procedure FreeImage_ConvertToRawBits(bits.l,dib.l,pitch.l,bpp.l,red_mask.l,green_mask.l,blue_mask.l,topdown.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertToRawBits@32",bits.l,dib.l,pitch.l,bpp.l,red_mask.l,green_mask.l,blue_mask.l,topdown.l)
EndProcedure

Procedure FreeImage_ConvertToStandardType(src.l,scale_linear.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertToStandardType@8",src.l,scale_linear.l)
EndProcedure

Procedure FreeImage_ConvertToType(src.l,dst_type.l,scale_linear.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ConvertToType@12",src.l,dst_type.l,scale_linear.l)
EndProcedure

Procedure FreeImage_Copy(dib.l,left.l,top.l,right.l,bottom.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_Copy@20",dib.l,left.l,top.l,right.l,bottom.l)
EndProcedure

Procedure FreeImage_CreateICCProfile(dib.l,dat.l,size.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_CreateICCProfile@12",dib.l,dat.l,size.l)
EndProcedure

Procedure FreeImage_CreateTag(tag.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_CreateTag@0",tag.l)
EndProcedure

Procedure FreeImage_DeInitialise()
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_DeInitialise@0")
EndProcedure

Procedure FreeImage_DeletePage(bitmap.l,page.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_DeletePage@8",bitmap.l,page.l)
EndProcedure

Procedure FreeImage_DeleteTag(tag.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_DeleteTag@4",tag.l)
EndProcedure

Procedure FreeImage_DestroyICCProfile(dib.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_DestroyICCProfile@4",dib.l)
EndProcedure

Procedure FreeImage_Dither(dib.l,algorithm.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_Dither@8",dib.l,algorithm.l)
EndProcedure

Procedure FreeImage_FIFSupportsExportBPP(fif.l,bbp.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_FIFSupportsExportBPP@8",fif.l,bbp.l)
EndProcedure

Procedure FreeImage_FIFSupportsExportType(fif.l,type.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_FIFSupportsExportType@8",fif.l,type.l)
EndProcedure

Procedure FreeImage_FIFSupportsICCProfiles(fif.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_FIFSupportsICCProfiles@4",fif.l)
EndProcedure

Procedure FreeImage_FIFSupportsReading(fif.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_FIFSupportsReading@4",fif.l)
EndProcedure

Procedure FreeImage_FIFSupportsWriting(fif.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_FIFSupportsWriting@4",fif.l)
EndProcedure

Procedure FreeImage_FindCloseMetadata(mdhandle.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_FindCloseMetadata@4",mdhandle.l)
EndProcedure

Procedure FreeImage_FindFirstMetadata(model.l,dib.l,tag.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_FindFirstMetadata@12",model.l,dib.l,tag.l)
EndProcedure

Procedure FreeImage_FindNextMetadata(mdhandle.l,tag.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_FindNextMetadata@8",mdhandle.l,tag.l)
EndProcedure

Procedure FreeImage_FlipHorizontal(dib.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_FlipHorizontal@4",dib.l)
EndProcedure

Procedure FreeImage_FlipVertical(dib.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_FlipVertical@4",dib.l)
EndProcedure

Procedure FreeImage_GetBPP(dib.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetBPP@4",dib.l)
EndProcedure

Procedure FreeImage_GetBackgroundColor(dib.l,bkcolor.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetBackgroundColor@8",dib.l,bkcolor.l)
EndProcedure

Procedure FreeImage_GetBits(dib.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetBits@4",dib.l)
EndProcedure

Procedure FreeImage_GetBlueMask(dib.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetBlueMask@4",dib.l)
EndProcedure

Procedure FreeImage_GetChannel(dib.l,channel.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetChannel@8",dib.l,channel.l)
EndProcedure

Procedure FreeImage_GetColorType(dib.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetColorType@4",dib.l)
EndProcedure

Procedure FreeImage_GetColorsUsed(dib.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetColorsUsed@4",dib.l)
EndProcedure

Procedure FreeImage_GetComplexChannel(src.l,channel)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetComplexChannel@8",src.l,channel)
EndProcedure

Procedure FreeImage_GetCopyrightMessage()
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetCopyrightMessage@0")
EndProcedure

Procedure FreeImage_GetDIBSize(dib.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetDIBSize@4",dib.l)
EndProcedure

Procedure FreeImage_GetDotsPerMeterX(dib.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetDotsPerMeterX@4",dib.l)
EndProcedure

Procedure FreeImage_GetDotsPerMeterY(dib.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetDotsPerMeterY@4",dib.l)
EndProcedure

Procedure FreeImage_GetFIFCount()
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetFIFCount@0")
EndProcedure

Procedure FreeImage_GetFIFDescription(fif.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetFIFDescription@4",fif.l)
EndProcedure

Procedure FreeImage_GetFIFExtensionList(fif.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetFIFExtensionList@4",fif.l)
EndProcedure

Procedure FreeImage_GetFIFFromFilename(filename.s)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetFIFFromFilename@4",filename.s)
EndProcedure

Procedure FreeImage_GetFIFFromFilenameU(filename.s)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetFIFFromFilenameU@4",filename.s)
EndProcedure

Procedure FreeImage_GetFIFFromFormat(format.s)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetFIFFromFormat@4",format.s)
EndProcedure

Procedure FreeImage_GetFIFFromMime(mime.s)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetFIFFromMime@4",mime.s)
EndProcedure

Procedure FreeImage_GetFIFMimeType(fif.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetFIFMimeType@4",fif.l)
EndProcedure

Procedure FreeImage_GetFIFRegExpr(fif.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetFIFRegExpr@4",fif.l)
EndProcedure

Procedure FreeImage_GetFileType(filename.s,size.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetFileType@8",filename.s,size.l)
EndProcedure

Procedure FreeImage_GetFileTypeFromHandle(io.l,handle.l,size.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetFileTypeFromHandle@12",io.l,handle.l,size.l)
EndProcedure

Procedure FreeImage_GetFileTypeFromMemory(stream.l,size.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetFileTypeFromMemory@8",stream.l,size.l)
EndProcedure

Procedure FreeImage_GetFileTypeU(filename.s,size.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetFileTypeU@8",filename.s,size.l)
EndProcedure

Procedure FreeImage_GetFormatFromFIF(fif.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetFormatFromFIF@4",fif.l)
EndProcedure

Procedure FreeImage_GetGreenMask(dib.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetGreenMask@4",dib.l)
EndProcedure

Procedure FreeImage_GetHeight(dib.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetHeight@4",dib.l)
EndProcedure

Procedure FreeImage_GetHistogram()
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetHistogram@12")
EndProcedure

Procedure FreeImage_GetICCProfile(dib.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetICCProfile@4",dib.l)
EndProcedure

Procedure FreeImage_GetImageType()
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetImageType@4")
EndProcedure

Procedure FreeImage_GetInfo(dib.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetInfo@4",dib.l)
EndProcedure

Procedure FreeImage_GetInfoHeader(dib.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetInfoHeader@4",dib.l)
EndProcedure

Procedure FreeImage_GetLine(dib.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetLine@4",dib.l)
EndProcedure

Procedure FreeImage_GetLockedPageNumbers(bitmap.l,pages.l,count.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetLockedPageNumbers@12",bitmap.l,pages.l,count.l)
EndProcedure

Procedure FreeImage_GetMetadata(model.l,dib.l,key.s,tag.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetMetadata@16",model.l,dib.l,key.s,tag.l)
EndProcedure

Procedure FreeImage_GetMetadataCount(model.l,dib.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetMetadataCount@8",model.l,dib.l)
EndProcedure

Procedure FreeImage_GetPageCount(bitmap.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetPageCount@4",bitmap.l)
EndProcedure

Procedure FreeImage_GetPalette(dib.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetPalette@4",dib.l)
EndProcedure

Procedure FreeImage_GetPitch(dib.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetPitch@4",dib.l)
EndProcedure

Procedure FreeImage_GetPixelColor(dib.l,x.l,y.l,value.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetPixelColor@16",dib.l,x.l,y.l,value.l)
EndProcedure

Procedure FreeImage_GetPixelIndex(dib.l,x.l,y.l,value.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetPixelIndex@16",dib.l,x.l,y.l,value.l)
EndProcedure

Procedure FreeImage_GetRedMask(dib.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetRedMask@4",dib.l)
EndProcedure

Procedure FreeImage_GetScanLine(dib.l,scanline.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetScanLine@8",dib.l,scanline.l)
EndProcedure

Procedure FreeImage_GetTagCount(tag.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetTagCount@4",tag.l)
EndProcedure

Procedure FreeImage_GetTagDescription(tag.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetTagDescription@4",tag.l)
EndProcedure

Procedure FreeImage_GetTagID(tag.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetTagID@4",tag.l)
EndProcedure

Procedure FreeImage_GetTagKey(tag.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetTagKey@4",tag.l)
EndProcedure

Procedure FreeImage_GetTagLength(tag.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetTagLength@4",tag.l)
EndProcedure

Procedure FreeImage_GetTagType(tag.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetTagType@4",tag.l)
EndProcedure

Procedure FreeImage_GetTagValue(tag.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetTagValue@4",tag.l)
EndProcedure

Procedure FreeImage_GetTransparencyCount(dib.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetTransparencyCount@4",dib.l)
EndProcedure

Procedure FreeImage_GetTransparencyTable(dib.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetTransparencyTable@4",dib.l)
EndProcedure

Procedure FreeImage_GetVersion()
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetVersion@0")
EndProcedure

Procedure FreeImage_GetWidth(dib.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_GetWidth@4",dib.l)
EndProcedure

Procedure FreeImage_HasBackgroundColor(dib.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_HasBackgroundColor@4",dib.l)
EndProcedure

Procedure FreeImage_Initialise(load_local_plugins_only.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_Initialise@4",load_local_plugins_only.l)
EndProcedure

Procedure FreeImage_InsertPage(bitmap.l,page.l,dat.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_InsertPage@12",bitmap.l,page.l,dat.l)
EndProcedure

Procedure FreeImage_Invert(dib.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_Invert@4",dib.l)
EndProcedure

Procedure FreeImage_IsLittleEndian()
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_IsLittleEndian@0")
EndProcedure

Procedure FreeImage_IsPluginEnabled(fif.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_IsPluginEnabled@4",fif.l)
EndProcedure

Procedure FreeImage_IsTransparent(dib.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_IsTransparent@4",dib.l)
EndProcedure

Procedure FreeImage_JPEGCrop(src_file.s,dst_file.s,left.l,top.l,right.l,bottom.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_JPEGCrop@24",src_file.s,dst_file.s,left.l,top.l,right.l,bottom.l)
EndProcedure

Procedure FreeImage_JPEGTransform(src_file.s,dst_file.s,operation.s,perfect.s)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_JPEGTransform@16",src_file.s,dst_file.s,operation.s,perfect.s)
EndProcedure

Procedure FreeImage_Load(fif.l,filename.s,flags.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_Load@12",fif.l,filename.s,flags.l)
EndProcedure

Procedure FreeImage_LoadFromHandle(fif.l,io.l,handle.l,flags.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_LoadFromHandle@16",fif.l,io.l,handle.l,flags.l)
EndProcedure

Procedure FreeImage_LoadFromMemory(fif.l,stream.l,flags.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_LoadFromMemory@12",fif.l,stream.l,flags.l)
EndProcedure

Procedure FreeImage_LoadMultiBitmapFromMemory(fif.l,stream.l,flags.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_LoadMultiBitmapFromMemory@12",fif.l,stream.l,flags.l)
EndProcedure

Procedure FreeImage_LoadU(fif.l,filename.s,flags.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_LoadU@12",fif.l,filename.s,flags.l)
EndProcedure

Procedure FreeImage_LockPage(bitmap.l,page.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_LockPage@8",bitmap.l,page.l)
EndProcedure

Procedure FreeImage_LookupSVGColor(szColor.s,nRed.l,nGreen.l,nBlue.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_LookupSVGColor@16",szColor.s,nRed.l,nGreen.l,nBlue.l)
EndProcedure

Procedure FreeImage_LookupX11Color(szColor.s,nRed.l,nGreen.l,nBlue.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_LookupX11Color@16",szColor.s,nRed.l,nGreen.l,nBlue.l)
EndProcedure

Procedure FreeImage_MakeThumbnail(dib.l,max_pixel_size.l,convert.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_MakeThumbnail@12",dib.l,max_pixel_size.l,convert.l)
EndProcedure

Procedure FreeImage_MovePage(bitmap.l,target.l,source.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_MovePage@12",bitmap.l,target.l,source.l)
EndProcedure

Procedure FreeImage_OpenMemory(dat.l,size_in_bytes.d)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_OpenMemory@8",dat.l,size_in_bytes.d)
EndProcedure

Procedure FreeImage_OpenMultiBitmap(fif.l,filename.s,create_new.l,read_only.l,keep_cache_in_memory.l,flags.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_OpenMultiBitmap@24",fif.l,filename.s,create_new.l,read_only.l,keep_cache_in_memory.l,flags.l)
EndProcedure

Procedure FreeImage_Paste(dst.l,src.l,left.l,top.l,alpha.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_Paste@20",dst.l,src.l,left.l,top.l,alpha.l)
EndProcedure

Procedure FreeImage_ReadMemory(buffer.l,size.l,count.l,stream.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ReadMemory@16",buffer.l,size.l,count.l,stream.l)
EndProcedure

Procedure FreeImage_RegisterExternalPlugin(path.s,format.s,description.s,extension.s,regexpr.s)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_RegisterExternalPlugin@20",path.s,format.s,description.s,extension.s,regexpr.s)
EndProcedure

Procedure FreeImage_RegisterLocalPlugin(proc_address.s,format.s,description.s,extension.s,regexpr.s)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_RegisterLocalPlugin@20",proc_address.s,format.s,description.s,extension.s,regexpr.s)
EndProcedure

Procedure FreeImage_Rescale(dib.l,dst_width.l,dst_height.l,filter.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_Rescale@16",dib.l,dst_width.l,dst_height.l,filter.l)
EndProcedure

Procedure FreeImage_RotateClassic(dib.l,angle.d)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_RotateClassic@12",dib.l,angle.d)
EndProcedure

Procedure FreeImage_RotateEx(dib.l,angle.d,x_shift.d,y_shift.d,x_origin.d,y_origin.d,use_mask.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_RotateEx@48",dib.l,angle.d,x_shift.d,y_shift.d,x_origin.d,y_origin.d,use_mask.l)
EndProcedure

Procedure FreeImage_Save(fif.l,dib.l,filename.s,flags.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_Save@16",fif.l,dib.l,filename.s,flags.l)
EndProcedure

Procedure FreeImage_SaveToHandle(fif.l,dib.l,io.l,fi_handle.l,handle,flags.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_SaveToHandle@20",fif.l,dib.l,io.l,fi_handle.l,handle,flags.l)
EndProcedure

Procedure FreeImage_SaveToMemory(fif.l,dib.l,stream.l,flags.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_SaveToMemory@16",fif.l,dib.l,stream.l,flags.l)
EndProcedure

Procedure FreeImage_SaveU(fif.l,dib.l,filename.s,flags.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_SaveU@16",fif.l,dib.l,filename.s,flags.l)
EndProcedure

Procedure FreeImage_SeekMemory(stream.l,offset.l,origin.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_SeekMemory@12",stream.l,offset.l,origin.l)
EndProcedure

Procedure FreeImage_SetBackgroundColor(dib.l,bkcolor.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_SetBackgroundColor@8",dib.l,bkcolor.l)
EndProcedure

Procedure FreeImage_SetChannel(dib.l, dib8.l,channel.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_SetChannel@12",dib.l, dib8.l,channel.l)
EndProcedure

Procedure FreeImage_SetComplexChannel(dst.l,src.l,channel.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_SetComplexChannel@12",dst.l,src.l,channel.l)
EndProcedure

Procedure FreeImage_SetDotsPerMeterX(dib.l,res.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_SetDotsPerMeterX@8",dib.l,res.l)
EndProcedure

Procedure FreeImage_SetDotsPerMeterY(dib.l,res.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_SetDotsPerMeterY@8",dib.l,res.l)
EndProcedure

Procedure FreeImage_SetMetadata(model.l, dib.l,key.s,tag.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_SetMetadata@16",model.l, dib.l,key.s,tag.l)
EndProcedure

Procedure FreeImage_SetOutputMessage(proc.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_SetOutputMessage@4",proc.l)
EndProcedure

Procedure FreeImage_SetPixelColor(dib.l,x.l,y.l,value.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_SetPixelColor@16",dib.l,x.l,y.l,value.l)
EndProcedure

Procedure FreeImage_SetPixelIndex(dib.l,x.l,y.l,value.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_SetPixelIndex@16",dib.l,x.l,y.l,value.l)
EndProcedure

Procedure FreeImage_SetPluginEnabled(fif.l,enable.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_SetPluginEnabled@8",fif.l,enable.l)
EndProcedure

Procedure FreeImage_SetTagCount(tag.l,count.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_SetTagCount@8",tag.l,count.l)
EndProcedure

Procedure FreeImage_SetTagDescription(tag.l,description.s)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_SetTagDescription@8",tag.l,description.s)
EndProcedure

Procedure FreeImage_SetTagID(tag.l,id.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_SetTagID@8",tag.l,id.l)
EndProcedure

Procedure FreeImage_SetTagKey(tag.l,key.s)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_SetTagKey@8",tag.l,key.s)
EndProcedure

Procedure FreeImage_SetTagLength(tag.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_SetTagLength@8",tag.l)
EndProcedure

Procedure FreeImage_SetTagType(tag.l,type.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_SetTagType@8",tag.l,type.l)
EndProcedure

Procedure FreeImage_SetTagValue(tag.l,value.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_SetTagValue@8",tag.l,value.l)
EndProcedure

Procedure FreeImage_SetTransparencyTable(dib.l,table.l,count.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_SetTransparencyTable@12",dib.l,table.l,count.l)
EndProcedure

Procedure FreeImage_SetTransparent(dib.l,enabled.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_SetTransparent@8",dib.l,enabled.l)
EndProcedure

Procedure FreeImage_TagToString(model.l,tag.l,Make.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_TagToString@12",model.l,tag.l,Make.l)
EndProcedure

Procedure FreeImage_TellMemory(stream.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_TellMemory@4",stream.l)
EndProcedure

Procedure FreeImage_Threshold(dib.l,T.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_Threshold@8",dib.l,T.l)
EndProcedure

Procedure FreeImage_TmoDrago03(src.l,gamma.d,exposure.d)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_TmoDrago03@20",src.l,gamma.d,exposure.d)
EndProcedure

Procedure FreeImage_TmoReinhard05(src.l,intensity.d,contrast.d)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_TmoReinhard05@20",src.l,intensity.d,contrast.d)
EndProcedure

Procedure FreeImage_ToneMapping(dib.l,tmo.l,first_param.d,second_param.d)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ToneMapping@24",dib.l,tmo.l,first_param.d,second_param.d)
EndProcedure

Procedure FreeImage_Unload(dib.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_Unload@4",dib.l)
EndProcedure

Procedure FreeImage_UnlockPage(bitmap.l,dat.l,changed.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_UnlockPage@12",bitmap.l,dat.l,changed.l)
EndProcedure

Procedure FreeImage_WriteMemory(buffer.l,size.l,count.l,stream.l)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_WriteMemory@16",buffer.l,size.l,count.l,stream.l)
EndProcedure

Procedure FreeImage_ZLibCRC32(crc.d,source.l,source_size.d)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ZLibCRC32@12",crc.d,source.l,source_size.d)
EndProcedure

Procedure FreeImage_ZLibCompress(target.l,target_size.d,source.l,source_size.d)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ZLibCompress@16",target.l,target_size.d,source.l,source_size.d)
EndProcedure

Procedure FreeImage_ZLibGUnzip(target.l,target_size.d,source.l,source_size.d)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ZLibGUnzip@16",target.l,target_size.d,source.l,source_size.d)
EndProcedure

Procedure FreeImage_ZLibGZip(target.l,target_size.d,source.l,source_size.d)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ZLibGZip@16",target.l,target_size.d,source.l,source_size.d)
EndProcedure

Procedure FreeImage_ZLibUncompress(target.l,target_size.d,source.l,source_size.d)
	ProcedureReturn CallFunction(#LIB_FREEIMAGE,"_FreeImage_ZLibUncompress@16",target.l,target_size.d,source.l,source_size.d)
EndProcedure
freeimage_struct.pb

Code: Select all

#FREEIMAGE_MAJOR_VERSION   =3
#FREEIMAGE_MINOR_VERSION   =9
#FREEIMAGE_RELEASE_SERIAL  =3


;/** 48-bit RGB 
;*/
Structure FIRGB16
	red.l
	green.l
	blue.l
EndStructure

;/** 64-bit RGBA
;*/
Structure FIRGBA16
	red.l
	green.l
	blue.l
	alpha.l
EndStructure

;/** 96-bit RGB Float
;*/
Structure FIRGBF
	red.f
	green.f
	blue.f
EndStructure

;/** 128-bit RGBA Float
;*/
Structure FIRGBAF
	red.f
	green.f
	blue.f
	alpha.f
EndStructure

;/** Data Structure For COMPLEX type (complex number)
;*/
Structure FICOMPLEX
    ;/// real part
	r.d;
	;/// imaginary part
  i.d;
EndStructure

;// Indexes For byte arrays, masks And shifts For treating pixels As words ---
;// These coincide With the order of RGBQUAD And RGBTRIPLE -------------------

;// Little Endian (x86 / MS Windows, Linux) : BGR(A) order
#FI_RGBA_RED				=2
#FI_RGBA_GREEN			=1
#FI_RGBA_BLUE			=0
#FI_RGBA_ALPHA			=3
#FI_RGBA_RED_MASK		=$00FF0000
#FI_RGBA_GREEN_MASK		=$0000FF00
#FI_RGBA_BLUE_MASK		=$000000FF
#FI_RGBA_ALPHA_MASK		=$FF000000
#FI_RGBA_RED_SHIFT		=16
#FI_RGBA_GREEN_SHIFT		=8
#FI_RGBA_BLUE_SHIFT		=0
#FI_RGBA_ALPHA_SHIFT		=24

; ;// Big Endian (PPC / Linux, MaxOSX) : RGB(A) order
; #FI_RGBA_RED				0
; #FI_RGBA_GREEN			1
; #FI_RGBA_BLUE			2
; #FI_RGBA_ALPHA			3
; #FI_RGBA_RED_MASK		=$FF000000
; #FI_RGBA_GREEN_MASK		=$00FF0000
; #FI_RGBA_BLUE_MASK		=$0000FF00
; #FI_RGBA_ALPHA_MASK		=$000000FF
; #FI_RGBA_RED_SHIFT		24
; #FI_RGBA_GREEN_SHIFT		16
; #FI_RGBA_BLUE_SHIFT		8
; #FI_RGBA_ALPHA_SHIFT		0


#FI_RGBA_RGB_MASK		=(#FI_RGBA_RED_MASK|#FI_RGBA_GREEN_MASK|#FI_RGBA_BLUE_MASK)

;// The 16bit macros only include masks And shifts, since each color element is Not byte aligned

#FI16_555_RED_MASK		=$7C00
#FI16_555_GREEN_MASK		=$03E0
#FI16_555_BLUE_MASK		=$001F
#FI16_555_RED_SHIFT		=10
#FI16_555_GREEN_SHIFT	=5
#FI16_555_BLUE_SHIFT		=0
#FI16_565_RED_MASK		=$F800
#FI16_565_GREEN_MASK		=$07E0
#FI16_565_BLUE_MASK		=$001F
#FI16_565_RED_SHIFT		=11
#FI16_565_GREEN_SHIFT	=5
#FI16_565_BLUE_SHIFT		=0

;// ICC profile support ------------------------------------------------------

#FIICC_DEFAULT			=$00
#FIICC_COLOR_IS_CMYK		=$01

; FI_STRUCT (FIICCPROFILE) { 
; 	WORD    flags;	;// info flag
; 	DWORD	size;	;// profile's size measured in bytes
; 	void   *Data;	;// points to a block of contiguous memory containing the profile
; };

;// Important enums ----------------------------------------------------------

;/** I/O image format identifiers.
;*/
Enumeration
	#FIF_UNKNOWN = -1
	#FIF_BMP		= 0
	#FIF_ICO		= 1
	#FIF_JPEG	= 2
	#FIF_JNG		= 3
	#FIF_KOALA	= 4
	#FIF_LBM		= 5
	#FIF_IFF = #FIF_LBM
	#FIF_MNG		= 6
	#FIF_PBM		= 7
	#FIF_PBMRAW	= 8
	#FIF_PCD		= 9
	#FIF_PCX		= 10
	#FIF_PGM		= 11
	#FIF_PGMRAW	= 12
	#FIF_PNG		= 13
	#FIF_PPM		= 14
	#FIF_PPMRAW	= 15
	#FIF_RAS		= 16
	#FIF_TARGA	= 17
	#FIF_TIFF	= 18
	#FIF_WBMP	= 19
	#FIF_PSD		= 20
	#FIF_CUT		= 21
	#FIF_XBM		= 22
	#FIF_XPM		= 23
	#FIF_DDS		= 24
	#FIF_GIF     = 25
	#FIF_HDR		= 26
	#FIF_FAXG3	= 27
	#FIF_SGI		= 28
EndEnumeration

;/** Image type used in FreeImage.
;*/
Enumeration
	#FIT_UNKNOWN = 0	;// unknown type
	#FIT_BITMAP  = 1	;// standard image			: 1- 4- 8- 16- 24- 32-bit
	#FIT_UINT16	= 2	;// array of unsigned short	: unsigned 16-bit
	#FIT_INT16	= 3	;// array of short			: signed 16-bit
	#FIT_UINT32	= 4	;// array of unsigned long	: unsigned 32-bit
	#FIT_INT32	= 5	;// array of long			: signed 32-bit
	#FIT_FLOAT	= 6	;// array of float			: 32-bit IEEE floating point
	#FIT_DOUBLE	= 7	;// array of double			: 64-bit IEEE floating point
	#FIT_COMPLEX	= 8	;// array of FICOMPLEX		: 2 x 64-bit IEEE floating point
	#FIT_RGB16	= 9	;// 48-bit RGB image			: 3 x 16-bit
	#FIT_RGBA16	= 10	;// 64-bit RGBA image		: 4 x 16-bit
	#FIT_RGBF	= 11	;// 96-bit RGB float image	: 3 x 32-bit IEEE floating point
	#FIT_RGBAF	= 12	;// 128-bit RGBA float image	: 4 x 32-bit IEEE floating point
EndEnumeration

;/** Image color type used in FreeImage.
;*/
Enumeration
	#FIC_MINISWHITE = 0		;// min value is white
    #FIC_MINISBLACK = 1		;// min value is black
    #FIC_RGB        = 2		;// RGB color model
    #FIC_PALETTE    = 3		;// color map indexed
	#FIC_RGBALPHA   = 4		;// RGB color model With alpha channel
	#FIC_CMYK       = 5		;// CMYK color model
EndEnumeration

;/** Color quantization algorithms.
;Constants used in FreeImage_ColorQuantize.
;*/
Enumeration
    #FIQ_WUQUANT = 0		;// Xiaolin Wu color quantization algorithm
    #FIQ_NNQUANT = 1			;// NeuQuant neural-net quantization algorithm by Anthony Dekker
EndEnumeration

;/** Dithering algorithms.
;Constants used in FreeImage_Dither.
;*/
Enumeration
    #FID_FS			= 0	;// Floyd & Steinberg error diffusion
	#FID_BAYER4x4	= 1	;// Bayer ordered dispersed dot dithering (order 2 dithering matrix)
	#FID_BAYER8x8	= 2	;// Bayer ordered dispersed dot dithering (order 3 dithering matrix)
	#FID_CLUSTER6x6	= 3	;// Ordered clustered dot dithering (order 3 - 6x6 matrix)
	#FID_CLUSTER8x8	= 4	;// Ordered clustered dot dithering (order 4 - 8x8 matrix)
	#FID_CLUSTER16x16= 5	;// Ordered clustered dot dithering (order 8 - 16x16 matrix)
	#FID_BAYER16x16	= 6		;// Bayer ordered dispersed dot dithering (order 4 dithering matrix)
EndEnumeration

;/** Lossless JPEG transformations
;Constants used in FreeImage_JPEGTransform
;*/
Enumeration
	#FIJPEG_OP_NONE			= 0	;// no transformation
	#FIJPEG_OP_FLIP_H		= 1	;// horizontal flip
	#FIJPEG_OP_FLIP_V		= 2	;// vertical flip
	#FIJPEG_OP_TRANSPOSE		= 3	;// transpose across UL-To-LR axis
	#FIJPEG_OP_TRANSVERSE	= 4	;// transpose across UR-To-LL axis
	#FIJPEG_OP_ROTATE_90		= 5	;// 90-degree clockwise rotation
	#FIJPEG_OP_ROTATE_180	= 6	;// 180-degree rotation
	#FIJPEG_OP_ROTATE_270	= 7		;// 270-degree clockwise (Or 90 ccw)
EndEnumeration

;/** Tone mapping operators.
;Constants used in FreeImage_ToneMapping.
;*/
Enumeration
  #FITMO_DRAGO03	 = 0	;// Adaptive logarithmic mapping (F. Drago 2003)
	#FITMO_REINHARD05 = 1	;// Dynamic range reduction inspired by photoreceptor physiology (E. Reinhard 2005)
EndEnumeration

;/** Upsampling / downsampling filters. 
;Constants used in FreeImage_Rescale.
;*/
Enumeration
	#FILTER_BOX		  = 0	;// Box pulse Fourier window 1st order (constant) b-spline
	#FILTER_BICUBIC	  = 1	;// Mitchell & Netravali's two-param cubic filter
	#FILTER_BILINEAR   = 2	;// Bilinear filter
	#FILTER_BSPLINE	  = 3	;// 4th order (cubic) b-spline
	#FILTER_CATMULLROM = 4	;// Catmull-Rom spline Overhauser spline
	#FILTER_LANCZOS3	  = 5	;// Lanczos3 filter
EndEnumeration

;/** Color channels.
;Constants used in color manipulation routines.
;*/
Enumeration
	#FICC_RGB	= 0	;// Use red green And blue channels
	#FICC_RED	= 1	;// Use red channel
	#FICC_GREEN	= 2	;// Use green channel
	#FICC_BLUE	= 3	;// Use blue channel
	#FICC_ALPHA	= 4	;// Use alpha channel
	#FICC_BLACK	= 5	;// Use black channel
	#FICC_REAL	= 6	;// Complex images: use real part
	#FICC_IMAG	= 7	;// Complex images: use imaginary part
	#FICC_MAG	= 8	;// Complex images: use magnitude
	#FICC_PHASE	= 9		;// Complex images: use phase
EndEnumeration

;// Metadata support ---------------------------------------------------------

;/**
;  Tag Data type information (based on TIFF specifications)
;
;  Note: RATIONALs are the ratio of two 32-bit integer values.
;*/
Enumeration
	#FIDT_NOTYPE		= 0	;// placeholder 
	#FIDT_BYTE		= 1	;// 8-bit unsigned integer 
	#FIDT_ASCII		= 2	;// 8-bit bytes w/ last byte null 
	#FIDT_SHORT		= 3	;// 16-bit unsigned integer 
	#FIDT_LONG		= 4	;// 32-bit unsigned integer 
	#FIDT_RATIONAL	= 5	;// 64-bit unsigned fraction 
	#FIDT_SBYTE		= 6	;// 8-bit signed integer 
	#FIDT_UNDEFINED	= 7	;// 8-bit untyped Data 
	#FIDT_SSHORT		= 8	;// 16-bit signed integer 
	#FIDT_SLONG		= 9	;// 32-bit signed integer 
	#FIDT_SRATIONAL	= 10	;// 64-bit signed fraction 
	#FIDT_FLOAT		= 11	;// 32-bit IEEE floating point 
	#FIDT_DOUBLE		= 12	;// 64-bit IEEE floating point 
	#FIDT_IFD		= 13	;// 32-bit unsigned integer (offset) 
	#FIDT_PALETTE	= 14	;// 32-bit RGBQUAD 
EndEnumeration

;/**
;  Metadata models supported by FreeImage
;*/
Enumeration
	#FIMD_NODATA			= -1
	#FIMD_COMMENTS		= 0	;// single comment Or keywords
	#FIMD_EXIF_MAIN		= 1	;// Exif-TIFF metadata
	#FIMD_EXIF_EXIF		= 2	;// Exif-specific metadata
	#FIMD_EXIF_GPS		= 3	;// Exif GPS metadata
	#FIMD_EXIF_MAKERNOTE = 4	;// Exif maker note metadata
	#FIMD_EXIF_INTEROP	= 5	;// Exif interoperability metadata
	#FIMD_IPTC			= 6	;// IPTC/NAA metadata
	#FIMD_XMP			= 7	;// Abobe XMP metadata
	#FIMD_GEOTIFF		= 8	;// GeoTIFF metadata
	#FIMD_ANIMATION		= 9	;// Animation metadata
	#FIMD_CUSTOM			= 10	;// Used To attach other metadata types To a dib
EndEnumeration

;/**
;  Handle To a metadata model
;*/
;FI_STRUCT (FIMETADATA) { void *Data; };

; FI_STRUCT (Plugin) {
; 	FI_FormatProc format_proc;
; 	FI_DescriptionProc description_proc;
; 	FI_ExtensionListProc extension_proc;
; 	FI_RegExprProc regexpr_proc;
; 	FI_OpenProc open_proc;
; 	FI_CloseProc close_proc;
; 	FI_PageCountProc pagecount_proc;
; 	FI_PageCapabilityProc pagecapability_proc;
; 	FI_LoadProc load_proc;
; 	FI_SaveProc save_proc;
; 	FI_ValidateProc validate_proc;
; 	FI_MimeProc mime_proc;
; 	FI_SupportsExportBPPProc supports_export_bpp_proc;
; 	FI_SupportsExportTypeProc supports_export_type_proc;
; 	FI_SupportsICCProfilesProc supports_icc_profiles_proc;
; };

;// Load / Save flag constants -----------------------------------------------

#BMP_DEFAULT         =0
#BMP_SAVE_RLE        =1
#CUT_DEFAULT         =0
#DDS_DEFAULT			=0
#FAXG3_DEFAULT		=0
#GIF_DEFAULT			=0
#GIF_LOAD256			=1		;// Load the image As a 256 color image With ununsed palette entries If it's 16 or 2 color
#GIF_PLAYBACK		=2		;// 'Play' the GIF To generate each frame (As 32bpp) instead of returning raw frame Data when loading
#HDR_DEFAULT			=0
#ICO_DEFAULT         =0
#ICO_MAKEALPHA		=1		;// convert To 32bpp And create an alpha channel from the And-mask when loading
#IFF_DEFAULT         =0
#JPEG_DEFAULT        =0		;// loading (see JPEG_FAST); saving (see JPEG_QUALITYGOOD)
#JPEG_FAST           =$0001	;// load the file As fast As possible sacrificing some quality
#JPEG_ACCURATE       =$0002	;// load the file With the best quality sacrificing some speed
#JPEG_CMYK			=$0004	;// load separated CMYK "as is" (use | To combine With other load flags)
#JPEG_QUALITYSUPERB  =$80	;// save With superb quality (100:1)
#JPEG_QUALITYGOOD    =$0100	;// save With good quality (75:1)
#JPEG_QUALITYNORMAL  =$0200	;// save With normal quality (50:1)
#JPEG_QUALITYAVERAGE =$0400	;// save With average quality (25:1)
#JPEG_QUALITYBAD     =$0800	;// save With bad quality (10:1)
#JPEG_PROGRESSIVE	=$2000	;// save As a progressive-JPEG (use | To combine With other save flags)
#KOALA_DEFAULT       =0
#LBM_DEFAULT         =0
#MNG_DEFAULT         =0
#PCD_DEFAULT         =0
#PCD_BASE            =1		;// load the bitmap sized 768 x 512
#PCD_BASEDIV4        =2		;// load the bitmap sized 384 x 256
#PCD_BASEDIV16       =3		;// load the bitmap sized 192 x 128
#PCX_DEFAULT         =0
#PNG_DEFAULT         =0
#PNG_IGNOREGAMMA		=1		;// avoid gamma correction
#PNM_DEFAULT         =0
#PNM_SAVE_RAW        =0       ;// If set the writer saves in RAW format (i.e. P4 P5 Or P6)
#PNM_SAVE_ASCII      =1       ;// If set the writer saves in ASCII format (i.e. P1 P2 Or P3)
#PSD_DEFAULT         =0
#RAS_DEFAULT         =0
#SGI_DEFAULT			=0
#TARGA_DEFAULT       =0
#TARGA_LOAD_RGB888   =1       ;// If set the loader converts RGB555 And ARGB8888 -> RGB888.
#TIFF_DEFAULT        =0
#TIFF_CMYK			=$0001	;// reads/stores tags For separated CMYK (use | To combine With compression flags)
#TIFF_PACKBITS       =$0100  ;// save using PACKBITS compression
#TIFF_DEFLATE        =$0200  ;// save using DEFLATE compression (a.k.a. ZLIB compression)
#TIFF_ADOBE_DEFLATE  =$0400  ;// save using ADOBE DEFLATE compression
#TIFF_NONE           =$0800  ;// save without any compression
#TIFF_CCITTFAX3		=$1000  ;// save using CCITT Group 3 fax encoding
#TIFF_CCITTFAX4		=$2000  ;// save using CCITT Group 4 fax encoding
#TIFF_LZW			=$4000	;// save using LZW compression
#TIFF_JPEG			=$8000	;// save using JPEG compression
#WBMP_DEFAULT        =0
#XBM_DEFAULT			=0
#XPM_DEFAULT			=0
There you go, have fun reason I'm posting it is because it didn't quite work out how I wanted to use it, the hunt goes on for something that will preserve the alpha channel of my images for the use of nvdxt.exe.

Posted: Mon May 21, 2007 2:04 am
by byo
Thanks a lot!
That was a lot of work!

Posted: Mon May 21, 2007 2:24 am
by Inner
LOL not really ;) but thanks.

Posted: Mon May 21, 2007 8:31 am
by Brice Manuel
Thank you for sharing, Inner. Haven't seen you around for a while. I hope things are well for you and your family :wink:

Posted: Sat Feb 16, 2008 3:01 pm
by nicolaus
How i can Display / Draw a image what is Loaded with FreeImage_Load() ?
the return value of FreeImage_Load() is not a right handle to the image or?

Posted: Tue Feb 19, 2008 10:36 pm
by tinman
Same problem as nicolas. I have gotten this far:

Code: Select all

Import "FreeImage.lib"
    FreeImage_GetFileTypeU.l(*lpszFilename.w, size.l)
    FreeImage_GetFIFFromFilenameU.l(*filename.w)
    FreeImage_FIFSupportsReading.l(fif.l)
    FreeImage_LoadU.l(fif.l, *filename.w, flags.l)
    FreeImage_GetInfo.l(*fibitmap)
    FreeImage_GetBits.l(*fibitmap)
    FreeImage_GetWidth.l(*fibitmap)
    FreeImage_GetHeight.l(*fibitmap)
EndImport

XIncludeFile "freeimage_structures.pbi"

EnableExplicit

Define.l *fibitmap
Define.l dc
Define.BITMAPINFO *bitmapinfo

Procedure.l LoadFIFBitmap(filename.s, flags.l)
    Protected   *bitmap = #Null
    Protected   format.l
    
    format = #FIF_UNKNOWN
    format = FreeImage_GetFileTypeU(@filename, 0)
    If format = #FIF_UNKNOWN
        format = FreeImage_GetFIFFromFilenameU(@filename)
    EndIf

    If format <> #FIF_UNKNOWN And FreeImage_FIFSupportsReading(format)
        *bitmap = FreeImage_LoadU(format, @filename, flags)
    EndIf
    ProcedureReturn *bitmap
EndProcedure

*fibitmap = LoadFIFBitmap("some_file.png", 0)
Debug *fibitmap

*bitmapinfo = FreeImage_GetInfo(*fibitmap)
Debug *bitmapinfo\bmiHeader\biWidth
Debug *bitmapinfo\bmiHeader\biHeight

CreateImage(1, FreeImage_GetWidth(*fibitmap), FreeImage_GetHeight(*fibitmap))
dc = StartDrawing(ImageOutput(1))
SetDIBitsToDevice_(dc, 0, 0, FreeImage_GetWidth(*fibitmap), FreeImage_GetHeight(*fibitmap), 0, 0, 0, FreeImage_GetHeight(*fibitmap), FreeImage_GetBits(*fibitmap), *bitmapinfo, #DIB_RGB_COLORS)
StopDrawing()

Define.l event
Define.l quit : quit = 0

Procedure.l MyWndProc(hwnd.l, message.l, wparam.l, lparam.l)
    ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure

If OpenWindow(0, 0, 0, 800, 600, "foo", #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_SizeGadget|#PB_Window_TitleBar|#PB_Window_ScreenCentered)

    If CreateGadgetList(WindowID(0))
        ImageGadget(1, 10, 10, 400, 300, ImageID(1))
    EndIf

    SetWindowCallback(@MyWndProc())

    While Not(quit)
        event = WaitWindowEvent()
        Select event
            Case #PB_Event_CloseWindow
                quit = 1
        EndSelect
    Wend
    
    CloseWindow(0)
EndIf
End
But the image always shows us black. As if it hasn't been drawn at all.

Posted: Tue Feb 19, 2008 11:01 pm
by tinman
tinman wrote:I have gotten this far:
Actually, that should work as long as your images are in a sensible format (the reason I got no display was because my image was 64 bits per pixel).

Posted: Thu Apr 03, 2008 1:37 pm
by Denis
Did anaybody here try to compile Freeimage C source code to get a PB lib using the way describe here using Visual C++ 6 ?

http://freeimage.sourceforge.net/faq.html

Posted: Thu Apr 03, 2008 11:09 pm
by tinman
I think Inner tried it before and found that polink crashed. That is why he ended up writing these DLL import functions IIRC.

Posted: Fri Apr 04, 2008 5:54 pm
by Denis
Tks tinman,

I hope that somebody will do it.

Posted: Sat Apr 05, 2008 10:44 pm
by tinman
I don't think it will happen, at least it will probably be more trouble than it is worth than to just use the DLL. I've done the following to get it to work as a PB lib, but it's awkward:

1) Compile the FreeImage source as a library, with a couple of modifications.

However, with this library I have not been able to stop polink from complaining about "multiple defined symbols", which are part of the C++ code. Maybe polink has a problem with that, maybe multiple defined symbols are some MS non-standard thing?

polink v5.00 is supposed to work with multiple merged library files, but it obviously doesn't deal with multiply defined symbols in C++ code.

2) Create a userlibrary using a modified version of freak's LibImporter.

3) Compile a test program in PB

Code: Select all

FreeImage_Initialise()
FreeImage_DeInitialise()
End
4) Link with VS2005 linker (due to problem in 1). This has to be done manually since the way PB calls the linker includes some libraries which conflict with those required by FreeImage.

Of course, you could create your own polink.exe which called link.exe instead and stripped out the incompatible parameters but then you're starting to have to mess around with things, not just install a user library.