{%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% osCommerce Product Manager for Windows (oscpmwin). Copyright ©2003,2004,2005 by Mario A. Valdez-Ramirez. You can contact Mario A. Valdez-Ramirez by email at mario@mariovaldez.org or paper mail at Olmos 809, San Nicolas, NL. 66495, Mexico. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} UNIT FreeImage; INTERFACE USES Windows; {FREEIMAGE 3 http://freeimage.sourceforge.net/} {$Z4} CONST JPEG_DEFAULT = 0; JPEG_FAST = 1; JPEG_ACCURATE = 2; JPEG_QUALITYSUPERB = $80; JPEG_QUALITYGOOD = $100; JPEG_QUALITYNORMAL = $200; JPEG_QUALITYAVERAGE = $400; JPEG_QUALITYBAD = $800; TYPE FIBITMAPDATA = RECORD data : POINTER; END; FIBITMAP = ^FIBITMAPDATA; FITAGDATA = RECORD data: POINTER; END; FITAG = ^FITAGDATA; FREE_IMAGE_FORMAT = (FIF_UNKNOWN = -1, FIF_BMP = 0, FIF_JPEG = 2, FIF_PCX = 10, FIF_PNG = 13, FIF_TARGA = 17, FIF_TIFF = 18, FIF_WBMP = 19, FIF_PSD = 20, FIF_XBM = 22, FIF_XPM = 23, FIF_GIF = 25); FREE_IMAGE_QUANTIZE = (FIQ_WUQUANT = 0, FIQ_NNQUANT = 1); FREE_IMAGE_FILTER = (FILTER_BOX = 0, FILTER_BICUBIC = 1, FILTER_BILINEAR = 2, FILTER_BSPLINE = 3, FILTER_CATMULLROM = 4, FILTER_LANCZOS3 = 5); FREE_IMAGE_MDTYPE = (FIDT_NOTYPE = 0, FIDT_BYTE = 1, FIDT_ASCII = 2, FIDT_SHORT = 3, FIDT_LONG = 4, FIDT_RATIONAL = 5, FIDT_SBYTE = 6, FIDT_UNDEFINED = 7, FIDT_SSHORT = 8, FIDT_SLONG = 9, FIDT_SRATIONAL = 10, FIDT_FLOAT = 11, FIDT_DOUBLE = 12, FIDT_IFD = 13); FREE_IMAGE_MDMODEL = (FIMD_NODATA = -1, FIMD_COMMENTS = 0, FIMD_EXIF_MAIN = 1, FIMD_EXIF_EXIF = 2, FIMD_EXIF_GPS = 3, FIMD_EXIF_MAKERNOTE = 4, FIMD_EXIF_INTEROP = 5, FIMD_IPTC = 6, FIMD_XMP = 7, FIMD_GEOTIFF = 8, FIMD_CUSTOM = 9 ); FUNCTION FreeImage_Allocate (width, height, bpp : LONGINT; red_mask : CARDINAL = 0; green_mask : CARDINAL = 0; blue_mask : CARDINAL = 0) : FIBITMAP; STDCALL; EXTERNAL 'FreeImage.dll' name '_FreeImage_Allocate@24'; PROCEDURE FreeImage_Unload (dib : FIBITMAP); STDCALL; EXTERNAL 'FreeImage.dll' name '_FreeImage_Unload@4'; FUNCTION FreeImage_Load (fif : FREE_IMAGE_FORMAT; filename : PCHAR; flags : LONGINT = 0) : FIBITMAP; STDCALL; EXTERNAL 'FreeImage.dll' name '_FreeImage_Load@12'; FUNCTION FreeImage_Save (fif : FREE_IMAGE_FORMAT; dib : FIBITMAP; filename : PCHAR; flags : LONGINT = 0) : BOOLEAN; STDCALL; EXTERNAL 'FreeImage.dll' name '_FreeImage_Save@16'; FUNCTION FreeImage_GetFileType (filename : PCHAR; size : LONGINT) : FREE_IMAGE_FORMAT; STDCALL; EXTERNAL 'FreeImage.dll' name '_FreeImage_GetFileType@8'; PROCEDURE FreeImage_SetPixelColor (dib : FIBITMAP; x, y : LONGINT; value : PRGBQUAD); STDCALL; EXTERNAL 'FreeImage.dll' name '_FreeImage_SetPixelColor@16'; FUNCTION FreeImage_GetWidth (dib : FIBITMAP) : CARDINAL; STDCALL; EXTERNAL 'FreeImage.dll' name '_FreeImage_GetWidth@4'; FUNCTION FreeImage_GetHeight (dib : FIBITMAP) : CARDINAL; STDCALL; EXTERNAL 'FreeImage.dll' name '_FreeImage_GetHeight@4'; FUNCTION FreeImage_GetBPP (dib : FIBITMAP) : CARDINAL; STDCALL; EXTERNAL 'FreeImage.dll' name '_FreeImage_GetBPP@4'; PROCEDURE FreeImage_SetBackgroundColor (dib : FIBITMAP; value : PRGBQUAD); STDCALL; EXTERNAL 'FreeImage.dll' name '_FreeImage_SetBackgroundColor@8'; FUNCTION FreeImage_ConvertTo8Bits (dib : FIBITMAP) : FIBITMAP; STDCALL; EXTERNAL 'FreeImage.dll' name '_FreeImage_ConvertTo8Bits@4'; FUNCTION FreeImage_ConvertTo24Bits (dib : FIBITMAP) : FIBITMAP; STDCALL; EXTERNAL 'FreeImage.dll' name '_FreeImage_ConvertTo24Bits@4'; FUNCTION FreeImage_ConvertTo32Bits (dib : FIBITMAP) : FIBITMAP; STDCALL; EXTERNAL 'FreeImage.dll' name '_FreeImage_ConvertTo32Bits@4'; FUNCTION FreeImage_ColorQuantize (dib : FIBITMAP; quantize : FREE_IMAGE_QUANTIZE) : FIBITMAP; STDCALL; EXTERNAL 'FreeImage.dll' name '_FreeImage_ColorQuantize@8'; FUNCTION FreeImage_Rescale (dib : FIBITMAP; dst_width, dst_height : LONGINT; filter : FREE_IMAGE_FILTER) : FIBITMAP; STDCALL; EXTERNAL 'FreeImage.dll' name '_FreeImage_Rescale@16'; FUNCTION FreeImage_Copy (dib : FIBITMAP; left, top, right, bottom : LONGINT) : FIBITMAP; STDCALL; EXTERNAL 'FreeImage.dll' name '_FreeImage_Copy@20'; FUNCTION FreeImage_Paste (dst, src : FIBITMAP; left, top, alpha : LONGINT) : BOOLEAN; STDCALL; EXTERNAL 'FreeImage.dll' name '_FreeImage_Paste@20'; FUNCTION FreeImage_CreateTag : FITAG; STDCALL; EXTERNAL 'FreeImage.dll' name '_FreeImage_CreateTag@0'; procedure FreeImage_DeleteTag (tag : FITAG); STDCALL; EXTERNAL 'FreeImage.dll' name '_FreeImage_DeleteTag@4'; FUNCTION FreeImage_SetTagKey (tag : FITAG; CONST key: PCHAR) : BOOLEAN; STDCALL; EXTERNAL 'FreeImage.dll' name '_FreeImage_SetTagKey@8'; FUNCTION FreeImage_GetTagKey (tag : FITAG) : PCHAR; STDCALL; EXTERNAL 'FreeImage.dll' name '_FreeImage_GetTagKey@4'; FUNCTION FreeImage_SetTagLength (tag : FITAG; length : DWORD) : BOOLEAN; STDCALL; EXTERNAL 'FreeImage.dll' name '_FreeImage_SetTagLength@8'; FUNCTION FreeImage_SetTagCount (tag : FITAG; count : DWORD) : BOOLEAN; STDCALL; EXTERNAL 'FreeImage.dll' name '_FreeImage_SetTagCount@8'; FUNCTION FreeImage_SetTagType (tag : FITAG; atype : FREE_IMAGE_MDTYPE) : BOOLEAN; STDCALL; EXTERNAL 'FreeImage.dll' name '_FreeImage_SetTagType@8'; FUNCTION FreeImage_SetTagValue (tag : FITAG; CONST value : Pointer) : BOOLEAN; STDCALL; EXTERNAL 'FreeImage.dll' name '_FreeImage_SetTagValue@8'; FUNCTION FreeImage_SetMetadata (model : FREE_IMAGE_MDMODEL; dib : FIBITMAP; CONST key : PCHAR; tag : FITAG) : BOOLEAN; STDCALL; EXTERNAL 'FreeImage.dll' name '_FreeImage_SetMetadata@16'; {$Z1} IMPLEMENTATION END.