00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
#ifndef FREEIMAGE_H
00045
#define FREEIMAGE_H
00046
00047
00048
00049
#define FREEIMAGE_MAJOR_VERSION 3
00050
#define FREEIMAGE_MINOR_VERSION 7
00051
#define FREEIMAGE_RELEASE_SERIAL 0
00052
00053
00054
00055
#if defined(FREEIMAGE_LIB) || !(defined(WIN32) || defined(__WIN32__))
00056
#define DLL_API
00057
#define DLL_CALLCONV
00058
#else
00059
00060
#ifdef __MINGW32__ // prevents a bug in mingw32
00061
#include <windows.h>
00062
#endif // __MINGW32__
00063
00064
#define DLL_CALLCONV __stdcall
00065
00066
00067
00068
00069
00070
00071
#ifdef FREEIMAGE_EXPORTS
00072
#define DLL_API __declspec(dllexport)
00073
#else
00074
#define DLL_API __declspec(dllimport)
00075
#endif // FREEIMAGE_EXPORTS
00076
#endif // FREEIMAGE_LIB || !WIN32
00077
00078
00079
00080
#if (defined(BYTE_ORDER) && BYTE_ORDER==BIG_ENDIAN) || \
00081
(defined(__BYTE_ORDER) && __BYTE_ORDER==__BIG_ENDIAN) || \
00082
defined(__APPLE__)
00083
#define FREEIMAGE_BIGENDIAN
00084
#endif // BYTE_ORDER
00085
00086
00087
#if defined(__BORLANDC__)
00088
#pragma option push -b
00089
#endif
00090
00091
00092
00093
#ifdef __cplusplus
00094
#define FI_DEFAULT(x) = x
00095
#define FI_ENUM(x) enum x
00096
#define FI_STRUCT(x) struct x
00097
#else
00098
#define FI_DEFAULT(x)
00099
#define FI_ENUM(x) typedef int x; enum x
00100
#define FI_STRUCT(x) typedef struct x x; struct x
00101
#endif
00102
00103
00104
00105 FI_STRUCT (FIBITMAP) {
void *data; };
00106 FI_STRUCT (FIMULTIBITMAP) {
void *data; };
00107
00108
00109
00110
#ifndef _WINDOWS_
00111
#define _WINDOWS_
00112
00113
#ifndef FALSE
00114
#define FALSE 0
00115
#endif
00116
#ifndef TRUE
00117
#define TRUE 1
00118
#endif
00119
#ifndef NULL
00120
#define NULL 0
00121
#endif
00122
00123
#ifndef SEEK_SET
00124
#define SEEK_SET 0
00125
#define SEEK_CUR 1
00126
#define SEEK_END 2
00127
#endif
00128
00129
#ifndef __MINGW32__ // prevents a bug in mingw32
00130
00131
typedef long BOOL;
00132
typedef unsigned char BYTE;
00133
typedef unsigned short WORD;
00134
typedef unsigned long DWORD;
00135
typedef long LONG;
00136
00137
#if (defined(WIN32) || defined(__WIN32__))
00138
#pragma pack(push, 1)
00139
#else
00140
#pragma pack(1)
00141
#endif // WIN32
00142
00143
typedef struct tagRGBQUAD {
00144
#ifdef FREEIMAGE_BIGENDIAN
00145
BYTE rgbRed;
00146 BYTE rgbGreen;
00147 BYTE rgbBlue;
00148
#else
00149
BYTE rgbBlue;
00150 BYTE rgbGreen;
00151 BYTE rgbRed;
00152
#endif // FREEIMAGE_BIGENDIAN
00153
BYTE rgbReserved;
00154 } RGBQUAD;
00155
00156
typedef struct tagRGBTRIPLE {
00157
#ifdef FREEIMAGE_BIGENDIAN
00158
BYTE rgbtRed;
00159 BYTE rgbtGreen;
00160 BYTE rgbtBlue;
00161
#else
00162
BYTE rgbtBlue;
00163 BYTE rgbtGreen;
00164 BYTE rgbtRed;
00165
#endif // FREEIMAGE_BIGENDIAN
00166
} RGBTRIPLE;
00167
00168
#if (defined(WIN32) || defined(__WIN32__))
00169
#pragma pack(pop)
00170
#else
00171
#pragma pack()
00172
#endif // WIN32
00173
00174
typedef struct tagBITMAPINFOHEADER{
00175 DWORD biSize;
00176 LONG biWidth;
00177 LONG biHeight;
00178 WORD biPlanes;
00179 WORD biBitCount;
00180 DWORD biCompression;
00181 DWORD biSizeImage;
00182 LONG biXPelsPerMeter;
00183 LONG biYPelsPerMeter;
00184 DWORD biClrUsed;
00185 DWORD biClrImportant;
00186 } BITMAPINFOHEADER, *PBITMAPINFOHEADER;
00187
00188
typedef struct tagBITMAPINFO {
00189 BITMAPINFOHEADER bmiHeader;
00190 RGBQUAD bmiColors[1];
00191 } BITMAPINFO, *PBITMAPINFO;
00192
00193
#endif // __MINGW32__
00194
00195
#endif // _WINDOWS_
00196
00197
00198
00199
#if (defined(WIN32) || defined(__WIN32__))
00200
#pragma pack(push, 1)
00201
#else
00202
#pragma pack(1)
00203
#endif // WIN32
00204
00207 typedef struct tagFIRGB16 {
00208 WORD red;
00209 WORD green;
00210 WORD blue;
00211 }
FIRGB16;
00212
00215 typedef struct tagFIRGBA16 {
00216 WORD red;
00217 WORD green;
00218 WORD blue;
00219 WORD alpha;
00220 }
FIRGBA16;
00221
00224 typedef struct tagFIRGBF {
00225
float red;
00226
float green;
00227
float blue;
00228 }
FIRGBF;
00229
00232 typedef struct tagFIRGBAF {
00233
float red;
00234
float green;
00235
float blue;
00236
float alpha;
00237 }
FIRGBAF;
00238
00241 typedef struct tagFICOMPLEX {
00243 double r;
00245 double i;
00246 }
FICOMPLEX;
00247
00248
#if (defined(WIN32) || defined(__WIN32__))
00249
#pragma pack(pop)
00250
#else
00251
#pragma pack()
00252
#endif // WIN32
00253
00254
00255
00256
00257
#ifndef FREEIMAGE_BIGENDIAN
00258
00259
#define FI_RGBA_RED 2
00260
#define FI_RGBA_GREEN 1
00261
#define FI_RGBA_BLUE 0
00262
#define FI_RGBA_ALPHA 3
00263
#define FI_RGBA_RED_MASK 0x00FF0000
00264
#define FI_RGBA_GREEN_MASK 0x0000FF00
00265
#define FI_RGBA_BLUE_MASK 0x000000FF
00266
#define FI_RGBA_ALPHA_MASK 0xFF000000
00267
#define FI_RGBA_RED_SHIFT 16
00268
#define FI_RGBA_GREEN_SHIFT 8
00269
#define FI_RGBA_BLUE_SHIFT 0
00270
#define FI_RGBA_ALPHA_SHIFT 24
00271
#else
00272
00273
#define FI_RGBA_RED 0
00274
#define FI_RGBA_GREEN 1
00275
#define FI_RGBA_BLUE 2
00276
#define FI_RGBA_ALPHA 3
00277
#define FI_RGBA_RED_MASK 0xFF000000
00278
#define FI_RGBA_GREEN_MASK 0x00FF0000
00279
#define FI_RGBA_BLUE_MASK 0x0000FF00
00280
#define FI_RGBA_ALPHA_MASK 0x000000FF
00281
#define FI_RGBA_RED_SHIFT 24
00282
#define FI_RGBA_GREEN_SHIFT 16
00283
#define FI_RGBA_BLUE_SHIFT 8
00284
#define FI_RGBA_ALPHA_SHIFT 0
00285
#endif // FREEIMAGE_BIGENDIAN
00286
00287
#define FI_RGBA_RGB_MASK (FI_RGBA_RED_MASK|FI_RGBA_GREEN_MASK|FI_RGBA_BLUE_MASK)
00288
00289
00290
00291
#define FI16_555_RED_MASK 0x7C00
00292
#define FI16_555_GREEN_MASK 0x03E0
00293
#define FI16_555_BLUE_MASK 0x001F
00294
#define FI16_555_RED_SHIFT 10
00295
#define FI16_555_GREEN_SHIFT 5
00296
#define FI16_555_BLUE_SHIFT 0
00297
#define FI16_565_RED_MASK 0xF800
00298
#define FI16_565_GREEN_MASK 0x07E0
00299
#define FI16_565_BLUE_MASK 0x001F
00300
#define FI16_565_RED_SHIFT 11
00301
#define FI16_565_GREEN_SHIFT 5
00302
#define FI16_565_BLUE_SHIFT 0
00303
00304
00305
00306
#define FIICC_DEFAULT 0x00
00307
#define FIICC_COLOR_IS_CMYK 0x01
00308
00309 FI_STRUCT (FIICCPROFILE) {
00310 WORD flags;
00311 DWORD size;
00312
void *data;
00313 };
00314
00315
00316
00319 FI_ENUM(FREE_IMAGE_FORMAT) {
00320 FIF_UNKNOWN = -1,
00321 FIF_BMP = 0,
00322 FIF_ICO = 1,
00323 FIF_JPEG = 2,
00324 FIF_JNG = 3,
00325 FIF_KOALA = 4,
00326 FIF_LBM = 5,
00327 FIF_IFF = FIF_LBM,
00328 FIF_MNG = 6,
00329 FIF_PBM = 7,
00330 FIF_PBMRAW = 8,
00331 FIF_PCD = 9,
00332 FIF_PCX = 10,
00333 FIF_PGM = 11,
00334 FIF_PGMRAW = 12,
00335 FIF_PNG = 13,
00336 FIF_PPM = 14,
00337 FIF_PPMRAW = 15,
00338 FIF_RAS = 16,
00339 FIF_TARGA = 17,
00340 FIF_TIFF = 18,
00341 FIF_WBMP = 19,
00342 FIF_PSD = 20,
00343 FIF_CUT = 21,
00344 FIF_XBM = 22,
00345 FIF_XPM = 23,
00346 FIF_DDS = 24,
00347 FIF_GIF = 25,
00348 FIF_HDR = 26
00349 };
00350
00353 FI_ENUM(FREE_IMAGE_TYPE) {
00354 FIT_UNKNOWN = 0,
00355 FIT_BITMAP = 1,
00356 FIT_UINT16 = 2,
00357 FIT_INT16 = 3,
00358 FIT_UINT32 = 4,
00359 FIT_INT32 = 5,
00360 FIT_FLOAT = 6,
00361 FIT_DOUBLE = 7,
00362 FIT_COMPLEX = 8,
00363 FIT_RGB16 = 9,
00364 FIT_RGBA16 = 10,
00365 FIT_RGBF = 11,
00366 FIT_RGBAF = 12
00367 };
00368
00371 FI_ENUM(FREE_IMAGE_COLOR_TYPE) {
00372 FIC_MINISWHITE = 0,
00373 FIC_MINISBLACK = 1,
00374 FIC_RGB = 2,
00375 FIC_PALETTE = 3,
00376 FIC_RGBALPHA = 4,
00377 FIC_CMYK = 5
00378 };
00379
00383 FI_ENUM(FREE_IMAGE_QUANTIZE) {
00384 FIQ_WUQUANT = 0,
00385 FIQ_NNQUANT = 1
00386 };
00387
00391 FI_ENUM(FREE_IMAGE_DITHER) {
00392 FID_FS = 0,
00393 FID_BAYER4x4 = 1,
00394 FID_BAYER8x8 = 2,
00395 FID_CLUSTER6x6 = 3,
00396 FID_CLUSTER8x8 = 4,
00397 FID_CLUSTER16x16= 5
00398 };
00399
00403 FI_ENUM(FREE_IMAGE_JPEG_OPERATION) {
00404 FIJPEG_OP_NONE = 0,
00405 FIJPEG_OP_FLIP_H = 1,
00406 FIJPEG_OP_FLIP_V = 2,
00407 FIJPEG_OP_TRANSPOSE = 3,
00408 FIJPEG_OP_TRANSVERSE = 4,
00409 FIJPEG_OP_ROTATE_90 = 5,
00410 FIJPEG_OP_ROTATE_180 = 6,
00411 FIJPEG_OP_ROTATE_270 = 7
00412 };
00413
00417 FI_ENUM(FREE_IMAGE_TMO) {
00418 FITMO_DRAGO03 = 0,
00419 FITMO_REINHARD05 = 1,
00420 };
00421
00425 FI_ENUM(FREE_IMAGE_FILTER) {
00426 FILTER_BOX = 0,
00427 FILTER_BICUBIC = 1,
00428 FILTER_BILINEAR = 2,
00429 FILTER_BSPLINE = 3,
00430 FILTER_CATMULLROM = 4,
00431 FILTER_LANCZOS3 = 5
00432 };
00433
00437 FI_ENUM(FREE_IMAGE_COLOR_CHANNEL) {
00438 FICC_RGB = 0,
00439 FICC_RED = 1,
00440 FICC_GREEN = 2,
00441 FICC_BLUE = 3,
00442 FICC_ALPHA = 4,
00443 FICC_BLACK = 5,
00444 FICC_REAL = 6,
00445 FICC_IMAG = 7,
00446 FICC_MAG = 8,
00447 FICC_PHASE = 9
00448 };
00449
00450
00451
00457 FI_ENUM(FREE_IMAGE_MDTYPE) {
00458 FIDT_NOTYPE = 0,
00459 FIDT_BYTE = 1,
00460 FIDT_ASCII = 2,
00461 FIDT_SHORT = 3,
00462 FIDT_LONG = 4,
00463 FIDT_RATIONAL = 5,
00464 FIDT_SBYTE = 6,
00465 FIDT_UNDEFINED = 7,
00466 FIDT_SSHORT = 8,
00467 FIDT_SLONG = 9,
00468 FIDT_SRATIONAL = 10,
00469 FIDT_FLOAT = 11,
00470 FIDT_DOUBLE = 12,
00471 FIDT_IFD = 13,
00472 FIDT_PALETTE = 14
00473 };
00474
00478 FI_ENUM(FREE_IMAGE_MDMODEL) {
00479 FIMD_NODATA = -1,
00480 FIMD_COMMENTS = 0,
00481 FIMD_EXIF_MAIN = 1,
00482 FIMD_EXIF_EXIF = 2,
00483 FIMD_EXIF_GPS = 3,
00484 FIMD_EXIF_MAKERNOTE = 4,
00485 FIMD_EXIF_INTEROP = 5,
00486 FIMD_IPTC = 6,
00487 FIMD_XMP = 7,
00488 FIMD_GEOTIFF = 8,
00489 FIMD_ANIMATION = 9,
00490 FIMD_CUSTOM = 10
00491 };
00492
00496 FI_STRUCT (FIMETADATA) {
void *data; };
00497
00501 FI_STRUCT (FITAG) {
void *data; };
00502
00503
00504
00505
#ifndef FREEIMAGE_IO
00506
#define FREEIMAGE_IO
00507
00508
typedef void* fi_handle;
00509
typedef unsigned (DLL_CALLCONV *FI_ReadProc) (
void *buffer,
unsigned size,
unsigned count, fi_handle handle);
00510
typedef unsigned (DLL_CALLCONV *FI_WriteProc) (
void *buffer,
unsigned size,
unsigned count, fi_handle handle);
00511
typedef int (DLL_CALLCONV *FI_SeekProc) (fi_handle handle,
long offset,
int origin);
00512
typedef long (DLL_CALLCONV *FI_TellProc) (fi_handle handle);
00513
00514
#if (defined(WIN32) || defined(__WIN32__))
00515
#pragma pack(push, 1)
00516
#else
00517
#pragma pack(1)
00518
#endif // WIN32
00519
00520 FI_STRUCT(FreeImageIO) {
00521 FI_ReadProc read_proc;
00522 FI_WriteProc write_proc;
00523 FI_SeekProc seek_proc;
00524 FI_TellProc tell_proc;
00525 };
00526
00527
#if (defined(WIN32) || defined(__WIN32__))
00528
#pragma pack(pop)
00529
#else
00530
#pragma pack()
00531
#endif // WIN32
00532
00536 FI_STRUCT (FIMEMORY) {
void *data; };
00537
00538
#endif // FREEIMAGE_IO
00539
00540
00541
00542
#ifndef PLUGINS
00543
#define PLUGINS
00544
00545
typedef const char *(DLL_CALLCONV *FI_FormatProc) ();
00546
typedef const char *(DLL_CALLCONV *FI_DescriptionProc) ();
00547
typedef const char *(DLL_CALLCONV *FI_ExtensionListProc) ();
00548
typedef const char *(DLL_CALLCONV *FI_RegExprProc) ();
00549
typedef void *(DLL_CALLCONV *FI_OpenProc)(FreeImageIO *io, fi_handle handle, BOOL read);
00550
typedef void (DLL_CALLCONV *FI_CloseProc)(FreeImageIO *io, fi_handle handle,
void *data);
00551
typedef int (DLL_CALLCONV *FI_PageCountProc)(FreeImageIO *io, fi_handle handle,
void *data);
00552
typedef int (DLL_CALLCONV *FI_PageCapabilityProc)(FreeImageIO *io, fi_handle handle,
void *data);
00553
typedef FIBITMAP *(DLL_CALLCONV *FI_LoadProc)(FreeImageIO *io, fi_handle handle,
int page,
int flags,
void *data);
00554
typedef BOOL (DLL_CALLCONV *FI_SaveProc)(FreeImageIO *io, FIBITMAP *dib, fi_handle handle,
int page,
int flags,
void *data);
00555
typedef BOOL (DLL_CALLCONV *FI_ValidateProc)(FreeImageIO *io, fi_handle handle);
00556
typedef const char *(DLL_CALLCONV *FI_MimeProc) ();
00557
typedef BOOL (DLL_CALLCONV *FI_SupportsExportBPPProc)(
int bpp);
00558
typedef BOOL (DLL_CALLCONV *FI_SupportsExportTypeProc)(FREE_IMAGE_TYPE type);
00559
typedef BOOL (DLL_CALLCONV *FI_SupportsICCProfilesProc)();
00560
00561 FI_STRUCT (Plugin) {
00562 FI_FormatProc format_proc;
00563 FI_DescriptionProc description_proc;
00564 FI_ExtensionListProc extension_proc;
00565 FI_RegExprProc regexpr_proc;
00566 FI_OpenProc open_proc;
00567 FI_CloseProc close_proc;
00568 FI_PageCountProc pagecount_proc;
00569 FI_PageCapabilityProc pagecapability_proc;
00570 FI_LoadProc load_proc;
00571 FI_SaveProc save_proc;
00572 FI_ValidateProc validate_proc;
00573 FI_MimeProc mime_proc;
00574 FI_SupportsExportBPPProc supports_export_bpp_proc;
00575 FI_SupportsExportTypeProc supports_export_type_proc;
00576 FI_SupportsICCProfilesProc supports_icc_profiles_proc;
00577 };
00578
00579
typedef void (DLL_CALLCONV *FI_InitProc)(Plugin *plugin,
int format_id);
00580
00581
#endif // PLUGINS
00582
00583
00584
00585
00586
#define BMP_DEFAULT 0
00587
#define BMP_SAVE_RLE 1
00588
#define CUT_DEFAULT 0
00589
#define DDS_DEFAULT 0
00590
#define GIF_DEFAULT 0
00591
#define GIF_LOAD256 1 // Load the image as a 256 color image with ununsed palette entries, if it's 16 or 2 color
00592
#define GIF_PLAYBACK 2 // 'Play' the GIF to generate each frame (as 32bpp) instead of returning raw frame data when loading
00593
#define HDR_DEFAULT 0
00594
#define ICO_DEFAULT 0
00595
#define ICO_MAKEALPHA 1 // convert to 32bpp and create an alpha channel from the AND-mask when loading
00596
#define IFF_DEFAULT 0
00597
#define JPEG_DEFAULT 0
00598
#define JPEG_FAST 1
00599
#define JPEG_ACCURATE 2
00600
#define JPEG_QUALITYSUPERB 0x80
00601
#define JPEG_QUALITYGOOD 0x100
00602
#define JPEG_QUALITYNORMAL 0x200
00603
#define JPEG_QUALITYAVERAGE 0x400
00604
#define JPEG_QUALITYBAD 0x800
00605
#define JPEG_CMYK 0x1000 // load separated CMYK "as is" (use | to combine with other flags)
00606
#define KOALA_DEFAULT 0
00607
#define LBM_DEFAULT 0
00608
#define MNG_DEFAULT 0
00609
#define PCD_DEFAULT 0
00610
#define PCD_BASE 1 // load the bitmap sized 768 x 512
00611
#define PCD_BASEDIV4 2 // load the bitmap sized 384 x 256
00612
#define PCD_BASEDIV16 3 // load the bitmap sized 192 x 128
00613
#define PCX_DEFAULT 0
00614
#define PNG_DEFAULT 0
00615
#define PNG_IGNOREGAMMA 1 // avoid gamma correction
00616
#define PNM_DEFAULT 0
00617
#define PNM_SAVE_RAW 0 // If set the writer saves in RAW format (i.e. P4, P5 or P6)
00618
#define PNM_SAVE_ASCII 1 // If set the writer saves in ASCII format (i.e. P1, P2 or P3)
00619
#define PSD_DEFAULT 0
00620
#define RAS_DEFAULT 0
00621
#define TARGA_DEFAULT 0
00622
#define TARGA_LOAD_RGB888 1 // If set the loader converts RGB555 and ARGB8888 -> RGB888.
00623
#define TIFF_DEFAULT 0
00624
#define TIFF_CMYK 0x0001 // reads/stores tags for separated CMYK (use | to combine with compression flags)
00625
#define TIFF_PACKBITS 0x0100 // save using PACKBITS compression
00626
#define TIFF_DEFLATE 0x0200 // save using DEFLATE compression (a.k.a. ZLIB compression)
00627
#define TIFF_ADOBE_DEFLATE 0x0400 // save using ADOBE DEFLATE compression
00628
#define TIFF_NONE 0x0800 // save without any compression
00629
#define TIFF_CCITTFAX3 0x1000 // save using CCITT Group 3 fax encoding
00630
#define TIFF_CCITTFAX4 0x2000 // save using CCITT Group 4 fax encoding
00631
#define TIFF_LZW 0x4000 // save using LZW compression
00632
#define TIFF_JPEG 0x8000 // save using JPEG compression
00633
#define WBMP_DEFAULT 0
00634
#define XBM_DEFAULT 0
00635
#define XPM_DEFAULT 0
00636
00637
00638
#ifdef __cplusplus
00639
extern "C" {
00640
#endif
00641
00642
00643
00644 DLL_API
void DLL_CALLCONV FreeImage_Initialise(BOOL load_local_plugins_only FI_DEFAULT(FALSE));
00645 DLL_API
void DLL_CALLCONV FreeImage_DeInitialise(
void);
00646
00647
00648
00649 DLL_API
const char *DLL_CALLCONV FreeImage_GetVersion(
void);
00650 DLL_API
const char *DLL_CALLCONV FreeImage_GetCopyrightMessage(
void);
00651
00652
00653
00654 DLL_API
void DLL_CALLCONV FreeImage_OutputMessageProc(
int fif,
const char *fmt, ...);
00655
00656
typedef void (*FreeImage_OutputMessageFunction)(FREE_IMAGE_FORMAT fif,
const char *msg);
00657 DLL_API
void DLL_CALLCONV FreeImage_SetOutputMessage(FreeImage_OutputMessageFunction omf);
00658
00659
00660
00661 DLL_API FIBITMAP *DLL_CALLCONV FreeImage_Allocate(
int width,
int height,
int bpp,
unsigned red_mask FI_DEFAULT(0),
unsigned green_mask FI_DEFAULT(0),
unsigned blue_mask FI_DEFAULT(0));
00662 DLL_API FIBITMAP *DLL_CALLCONV FreeImage_AllocateT(FREE_IMAGE_TYPE type,
int width,
int height,
int bpp FI_DEFAULT(8),
unsigned red_mask FI_DEFAULT(0),
unsigned green_mask FI_DEFAULT(0),
unsigned blue_mask FI_DEFAULT(0));
00663 DLL_API FIBITMAP * DLL_CALLCONV FreeImage_Clone(FIBITMAP *dib);
00664 DLL_API
void DLL_CALLCONV FreeImage_Unload(FIBITMAP *dib);
00665
00666
00667
00668 DLL_API FIBITMAP *DLL_CALLCONV FreeImage_Load(FREE_IMAGE_FORMAT fif,
const char *filename,
int flags FI_DEFAULT(0));
00669 DLL_API FIBITMAP *DLL_CALLCONV FreeImage_LoadFromHandle(FREE_IMAGE_FORMAT fif, FreeImageIO *io, fi_handle handle,
int flags FI_DEFAULT(0));
00670 DLL_API BOOL DLL_CALLCONV FreeImage_Save(FREE_IMAGE_FORMAT fif, FIBITMAP *dib,
const char *filename,
int flags FI_DEFAULT(0));
00671 DLL_API BOOL DLL_CALLCONV FreeImage_SaveToHandle(FREE_IMAGE_FORMAT fif, FIBITMAP *dib, FreeImageIO *io, fi_handle handle,
int flags FI_DEFAULT(0));
00672
00673
00674
00675 DLL_API FIMEMORY *DLL_CALLCONV FreeImage_OpenMemory(BYTE *data FI_DEFAULT(0), DWORD size_in_bytes FI_DEFAULT(0));
00676 DLL_API
void DLL_CALLCONV FreeImage_CloseMemory(FIMEMORY *stream);
00677 DLL_API FIBITMAP *DLL_CALLCONV FreeImage_LoadFromMemory(FREE_IMAGE_FORMAT fif, FIMEMORY *stream,
int flags FI_DEFAULT(0));
00678 DLL_API BOOL DLL_CALLCONV FreeImage_SaveToMemory(FREE_IMAGE_FORMAT fif, FIBITMAP *dib, FIMEMORY *stream,
int flags FI_DEFAULT(0));
00679 DLL_API
long DLL_CALLCONV FreeImage_TellMemory(FIMEMORY *stream);
00680 DLL_API BOOL DLL_CALLCONV FreeImage_SeekMemory(FIMEMORY *stream,
long offset,
int origin);
00681 DLL_API BOOL DLL_CALLCONV FreeImage_AcquireMemory(FIMEMORY *stream, BYTE **data, DWORD *size_in_bytes);
00682
00683
00684
00685 DLL_API FREE_IMAGE_FORMAT DLL_CALLCONV FreeImage_RegisterLocalPlugin(FI_InitProc proc_address,
const char *format FI_DEFAULT(0),
const char *description FI_DEFAULT(0),
const char *extension FI_DEFAULT(0),
const char *regexpr FI_DEFAULT(0));
00686 DLL_API FREE_IMAGE_FORMAT DLL_CALLCONV FreeImage_RegisterExternalPlugin(
const char *path,
const char *format FI_DEFAULT(0),
const char *description FI_DEFAULT(0),
const char *extension FI_DEFAULT(0),
const char *regexpr FI_DEFAULT(0));
00687 DLL_API
int DLL_CALLCONV FreeImage_GetFIFCount(
void);
00688 DLL_API
int DLL_CALLCONV FreeImage_SetPluginEnabled(FREE_IMAGE_FORMAT fif, BOOL enable);
00689 DLL_API
int DLL_CALLCONV FreeImage_IsPluginEnabled(FREE_IMAGE_FORMAT fif);
00690 DLL_API FREE_IMAGE_FORMAT DLL_CALLCONV FreeImage_GetFIFFromFormat(
const char *format);
00691 DLL_API FREE_IMAGE_FORMAT DLL_CALLCONV FreeImage_GetFIFFromMime(
const char *mime);
00692 DLL_API
const char *DLL_CALLCONV FreeImage_GetFormatFromFIF(FREE_IMAGE_FORMAT fif);
00693 DLL_API
const char *DLL_CALLCONV FreeImage_GetFIFExtensionList(FREE_IMAGE_FORMAT fif);
00694 DLL_API
const char *DLL_CALLCONV FreeImage_GetFIFDescription(FREE_IMAGE_FORMAT fif);
00695 DLL_API
const char *DLL_CALLCONV FreeImage_GetFIFRegExpr(FREE_IMAGE_FORMAT fif);
00696 DLL_API
const char *DLL_CALLCONV FreeImage_GetFIFMimeType(FREE_IMAGE_FORMAT fif);
00697 DLL_API FREE_IMAGE_FORMAT DLL_CALLCONV FreeImage_GetFIFFromFilename(
const char *filename);
00698 DLL_API BOOL DLL_CALLCONV FreeImage_FIFSupportsReading(FREE_IMAGE_FORMAT fif);
00699 DLL_API BOOL DLL_CALLCONV FreeImage_FIFSupportsWriting(FREE_IMAGE_FORMAT fif);
00700 DLL_API BOOL DLL_CALLCONV FreeImage_FIFSupportsExportBPP(FREE_IMAGE_FORMAT fif,
int bpp);
00701 DLL_API BOOL DLL_CALLCONV FreeImage_FIFSupportsExportType(FREE_IMAGE_FORMAT fif, FREE_IMAGE_TYPE type);
00702 DLL_API BOOL DLL_CALLCONV FreeImage_FIFSupportsICCProfiles(FREE_IMAGE_FORMAT fif);
00703
00704
00705
00706 DLL_API FIMULTIBITMAP * DLL_CALLCONV FreeImage_OpenMultiBitmap(FREE_IMAGE_FORMAT fif,
const char *filename, BOOL create_new, BOOL read_only, BOOL keep_cache_in_memory FI_DEFAULT(FALSE),
int flags FI_DEFAULT(0));
00707 DLL_API BOOL DLL_CALLCONV FreeImage_CloseMultiBitmap(FIMULTIBITMAP *bitmap,
int flags FI_DEFAULT(0));
00708 DLL_API
int DLL_CALLCONV FreeImage_GetPageCount(FIMULTIBITMAP *bitmap);
00709 DLL_API
void DLL_CALLCONV FreeImage_AppendPage(FIMULTIBITMAP *bitmap, FIBITMAP *data);
00710 DLL_API
void DLL_CALLCONV FreeImage_InsertPage(FIMULTIBITMAP *bitmap,
int page, FIBITMAP *data);
00711 DLL_API
void DLL_CALLCONV FreeImage_DeletePage(FIMULTIBITMAP *bitmap,
int page);
00712 DLL_API FIBITMAP * DLL_CALLCONV FreeImage_LockPage(FIMULTIBITMAP *bitmap,
int page);
00713 DLL_API
void DLL_CALLCONV FreeImage_UnlockPage(FIMULTIBITMAP *bitmap, FIBITMAP *page, BOOL changed);
00714 DLL_API BOOL DLL_CALLCONV FreeImage_MovePage(FIMULTIBITMAP *bitmap,
int target,
int source);
00715 DLL_API BOOL DLL_CALLCONV FreeImage_GetLockedPageNumbers(FIMULTIBITMAP *bitmap,
int *pages,
int *count);
00716
00717
00718
00719 DLL_API FREE_IMAGE_FORMAT DLL_CALLCONV FreeImage_GetFileType(
const char *filename,
int size FI_DEFAULT(0));
00720 DLL_API FREE_IMAGE_FORMAT DLL_CALLCONV FreeImage_GetFileTypeFromHandle(FreeImageIO *io, fi_handle handle,
int size FI_DEFAULT(0));
00721 DLL_API FREE_IMAGE_FORMAT DLL_CALLCONV FreeImage_GetFileTypeFromMemory(FIMEMORY *stream,
int size FI_DEFAULT(0));
00722
00723
00724
00725 DLL_API FREE_IMAGE_TYPE DLL_CALLCONV FreeImage_GetImageType(FIBITMAP *dib);
00726
00727
00728
00729 DLL_API BOOL DLL_CALLCONV FreeImage_IsLittleEndian(
void);
00730 DLL_API BOOL DLL_CALLCONV FreeImage_LookupX11Color(
const char *szColor, BYTE *nRed, BYTE *nGreen, BYTE *nBlue);
00731 DLL_API BOOL DLL_CALLCONV FreeImage_LookupSVGColor(
const char *szColor, BYTE *nRed, BYTE *nGreen, BYTE *nBlue);
00732
00733
00734
00735
00736 DLL_API BYTE *DLL_CALLCONV FreeImage_GetBits(FIBITMAP *dib);
00737 DLL_API BYTE *DLL_CALLCONV FreeImage_GetScanLine(FIBITMAP *dib,
int scanline);
00738
00739 DLL_API BOOL DLL_CALLCONV FreeImage_GetPixelIndex(FIBITMAP *dib,
unsigned x,
unsigned y, BYTE *value);
00740 DLL_API BOOL DLL_CALLCONV FreeImage_GetPixelColor(FIBITMAP *dib,
unsigned x,
unsigned y, RGBQUAD *value);
00741 DLL_API BOOL DLL_CALLCONV FreeImage_SetPixelIndex(FIBITMAP *dib,
unsigned x,
unsigned y, BYTE *value);
00742 DLL_API BOOL DLL_CALLCONV FreeImage_SetPixelColor(FIBITMAP *dib,
unsigned x,
unsigned y, RGBQUAD *value);
00743
00744
00745
00746 DLL_API
unsigned DLL_CALLCONV FreeImage_GetColorsUsed(FIBITMAP *dib);
00747 DLL_API
unsigned DLL_CALLCONV FreeImage_GetBPP(FIBITMAP *dib);
00748 DLL_API
unsigned DLL_CALLCONV FreeImage_GetWidth(FIBITMAP *dib);
00749 DLL_API
unsigned DLL_CALLCONV FreeImage_GetHeight(FIBITMAP *dib);
00750 DLL_API
unsigned DLL_CALLCONV FreeImage_GetLine(FIBITMAP *dib);
00751 DLL_API
unsigned DLL_CALLCONV FreeImage_GetPitch(FIBITMAP *dib);
00752 DLL_API
unsigned DLL_CALLCONV FreeImage_GetDIBSize(FIBITMAP *dib);
00753 DLL_API RGBQUAD *DLL_CALLCONV FreeImage_GetPalette(FIBITMAP *dib);
00754
00755 DLL_API
unsigned DLL_CALLCONV FreeImage_GetDotsPerMeterX(FIBITMAP *dib);
00756 DLL_API
unsigned DLL_CALLCONV FreeImage_GetDotsPerMeterY(FIBITMAP *dib);
00757 DLL_API
void DLL_CALLCONV FreeImage_SetDotsPerMeterX(FIBITMAP *dib,
unsigned res);
00758 DLL_API
void DLL_CALLCONV FreeImage_SetDotsPerMeterY(FIBITMAP *dib,
unsigned res);
00759
00760 DLL_API BITMAPINFOHEADER *DLL_CALLCONV FreeImage_GetInfoHeader(FIBITMAP *dib);
00761 DLL_API BITMAPINFO *DLL_CALLCONV FreeImage_GetInfo(FIBITMAP *dib);
00762 DLL_API FREE_IMAGE_COLOR_TYPE DLL_CALLCONV FreeImage_GetColorType(FIBITMAP *dib);
00763
00764 DLL_API
unsigned DLL_CALLCONV FreeImage_GetRedMask(FIBITMAP *dib);
00765 DLL_API
unsigned DLL_CALLCONV FreeImage_GetGreenMask(FIBITMAP *dib);
00766 DLL_API
unsigned DLL_CALLCONV FreeImage_GetBlueMask(FIBITMAP *dib);
00767
00768 DLL_API
unsigned DLL_CALLCONV FreeImage_GetTransparencyCount(FIBITMAP *dib);
00769 DLL_API BYTE * DLL_CALLCONV FreeImage_GetTransparencyTable(FIBITMAP *dib);
00770 DLL_API
void DLL_CALLCONV FreeImage_SetTransparent(FIBITMAP *dib, BOOL enabled);
00771 DLL_API
void DLL_CALLCONV FreeImage_SetTransparencyTable(FIBITMAP *dib, BYTE *table,
int count);
00772 DLL_API BOOL DLL_CALLCONV FreeImage_IsTransparent(FIBITMAP *dib);
00773
00774 DLL_API BOOL DLL_CALLCONV FreeImage_HasBackgroundColor(FIBITMAP *dib);
00775 DLL_API BOOL DLL_CALLCONV FreeImage_GetBackgroundColor(FIBITMAP *dib, RGBQUAD *bkcolor);
00776 DLL_API BOOL DLL_CALLCONV FreeImage_SetBackgroundColor(FIBITMAP *dib, RGBQUAD *bkcolor);
00777
00778
00779
00780
00781 DLL_API FIICCPROFILE *DLL_CALLCONV FreeImage_GetICCProfile(FIBITMAP *dib);
00782 DLL_API FIICCPROFILE *DLL_CALLCONV FreeImage_CreateICCProfile(FIBITMAP *dib,
void *data,
long size);
00783 DLL_API
void DLL_CALLCONV FreeImage_DestroyICCProfile(FIBITMAP *dib);
00784
00785
00786
00787 DLL_API
void DLL_CALLCONV FreeImage_ConvertLine1To4(BYTE *target, BYTE *source,
int width_in_pixels);
00788 DLL_API
void DLL_CALLCONV FreeImage_ConvertLine8To4(BYTE *target, BYTE *source,
int width_in_pixels, RGBQUAD *palette);
00789 DLL_API
void DLL_CALLCONV FreeImage_ConvertLine16To4_555(BYTE *target, BYTE *source,
int width_in_pixels);
00790 DLL_API
void DLL_CALLCONV FreeImage_ConvertLine16To4_565(BYTE *target, BYTE *source,
int width_in_pixels);
00791 DLL_API
void DLL_CALLCONV FreeImage_ConvertLine24To4(BYTE *target, BYTE *source,
int width_in_pixels);
00792 DLL_API
void DLL_CALLCONV FreeImage_ConvertLine32To4(BYTE *target, BYTE *source,
int width_in_pixels);
00793 DLL_API
void DLL_CALLCONV FreeImage_ConvertLine1To8(BYTE *target, BYTE *source,
int width_in_pixels);
00794 DLL_API
void DLL_CALLCONV FreeImage_ConvertLine4To8(BYTE *target, BYTE *source,
int width_in_pixels);
00795 DLL_API
void DLL_CALLCONV FreeImage_ConvertLine16To8_555(BYTE *target, BYTE *source,
int width_in_pixels);
00796 DLL_API
void DLL_CALLCONV FreeImage_ConvertLine16To8_565(BYTE *target, BYTE *source,
int width_in_pixels);
00797 DLL_API
void DLL_CALLCONV FreeImage_ConvertLine24To8(BYTE *target, BYTE *source,
int width_in_pixels);
00798 DLL_API
void DLL_CALLCONV FreeImage_ConvertLine32To8(BYTE *target, BYTE *source,
int width_in_pixels);
00799 DLL_API
void DLL_CALLCONV FreeImage_ConvertLine1To16_555(BYTE *target, BYTE *source,
int width_in_pixels, RGBQUAD *palette);
00800 DLL_API
void DLL_CALLCONV FreeImage_ConvertLine4To16_555(BYTE *target, BYTE *source,
int width_in_pixels, RGBQUAD *palette);
00801 DLL_API
void DLL_CALLCONV FreeImage_ConvertLine8To16_555(BYTE *target, BYTE *source,
int width_in_pixels, RGBQUAD *palette);
00802 DLL_API
void DLL_CALLCONV FreeImage_ConvertLine16_565_To16_555(BYTE *target, BYTE *source,
int width_in_pixels);
00803 DLL_API
void DLL_CALLCONV FreeImage_ConvertLine24To16_555(BYTE *target, BYTE *source,
int width_in_pixels);
00804 DLL_API
void DLL_CALLCONV FreeImage_ConvertLine32To16_555(BYTE *target, BYTE *source,
int width_in_pixels);
00805 DLL_API
void DLL_CALLCONV FreeImage_ConvertLine1To16_565(BYTE *target, BYTE *source,
int width_in_pixels, RGBQUAD *palette);
00806 DLL_API
void DLL_CALLCONV FreeImage_ConvertLine4To16_565(BYTE *target, BYTE *source,
int width_in_pixels, RGBQUAD *palette);
00807 DLL_API
void DLL_CALLCONV FreeImage_ConvertLine8To16_565(BYTE *target, BYTE *source,
int width_in_pixels, RGBQUAD *palette);
00808 DLL_API
void DLL_CALLCONV FreeImage_ConvertLine16_555_To16_565(BYTE *target, BYTE *source,
int width_in_pixels);
00809 DLL_API
void DLL_CALLCONV FreeImage_ConvertLine24To16_565(BYTE *target, BYTE *source,
int width_in_pixels);
00810 DLL_API
void DLL_CALLCONV FreeImage_ConvertLine32To16_565(BYTE *target, BYTE *source,
int width_in_pixels);
00811 DLL_API
void DLL_CALLCONV FreeImage_ConvertLine1To24(BYTE *target, BYTE *source,
int width_in_pixels, RGBQUAD *palette);
00812 DLL_API
void DLL_CALLCONV FreeImage_ConvertLine4To24(BYTE *target, BYTE *source,
int width_in_pixels, RGBQUAD *palette);
00813 DLL_API
void DLL_CALLCONV FreeImage_ConvertLine8To24(BYTE *target, BYTE *source,
int width_in_pixels, RGBQUAD *palette);
00814 DLL_API
void DLL_CALLCONV FreeImage_ConvertLine16To24_555(BYTE *target, BYTE *source,
int width_in_pixels);
00815 DLL_API
void DLL_CALLCONV FreeImage_ConvertLine16To24_565(BYTE *target, BYTE *source,
int width_in_pixels);
00816 DLL_API
void DLL_CALLCONV FreeImage_ConvertLine32To24(BYTE *target, BYTE *source,
int width_in_pixels);
00817 DLL_API
void DLL_CALLCONV FreeImage_ConvertLine1To32(BYTE *target, BYTE *source,
int width_in_pixels, RGBQUAD *palette);
00818 DLL_API
void DLL_CALLCONV FreeImage_ConvertLine4To32(BYTE *target, BYTE *source,
int width_in_pixels, RGBQUAD *palette);
00819 DLL_API
void DLL_CALLCONV FreeImage_ConvertLine8To32(BYTE *target, BYTE *source,
int width_in_pixels, RGBQUAD *palette);
00820 DLL_API
void DLL_CALLCONV FreeImage_ConvertLine16To32_555(BYTE *target, BYTE *source,
int width_in_pixels);
00821 DLL_API
void DLL_CALLCONV FreeImage_ConvertLine16To32_565(BYTE *target, BYTE *source,
int width_in_pixels);
00822 DLL_API
void DLL_CALLCONV FreeImage_ConvertLine24To32(BYTE *target, BYTE *source,
int width_in_pixels);
00823
00824
00825
00826 DLL_API FIBITMAP *DLL_CALLCONV FreeImage_ConvertTo4Bits(FIBITMAP *dib);
00827 DLL_API FIBITMAP *DLL_CALLCONV FreeImage_ConvertTo8Bits(FIBITMAP *dib);
00828 DLL_API FIBITMAP *DLL_CALLCONV FreeImage_ConvertTo16Bits555(FIBITMAP *dib);
00829 DLL_API FIBITMAP *DLL_CALLCONV FreeImage_ConvertTo16Bits565(FIBITMAP *dib);
00830 DLL_API FIBITMAP *DLL_CALLCONV FreeImage_ConvertTo24Bits(FIBITMAP *dib);
00831 DLL_API FIBITMAP *DLL_CALLCONV FreeImage_ConvertTo32Bits(FIBITMAP *dib);
00832 DLL_API FIBITMAP *DLL_CALLCONV FreeImage_ColorQuantize(FIBITMAP *dib, FREE_IMAGE_QUANTIZE quantize);
00833 DLL_API FIBITMAP *DLL_CALLCONV FreeImage_ColorQuantizeEx(FIBITMAP *dib, FREE_IMAGE_QUANTIZE quantize FI_DEFAULT(FIQ_WUQUANT),
int PaletteSize FI_DEFAULT(256),
int ReserveSize FI_DEFAULT(0), RGBQUAD *ReservePalette FI_DEFAULT(NULL));
00834 DLL_API FIBITMAP *DLL_CALLCONV FreeImage_Threshold(FIBITMAP *dib, BYTE T);
00835 DLL_API FIBITMAP *DLL_CALLCONV FreeImage_Dither(FIBITMAP *dib, FREE_IMAGE_DITHER algorithm);
00836
00837 DLL_API FIBITMAP *DLL_CALLCONV FreeImage_ConvertFromRawBits(BYTE *bits,
int width,
int height,
int pitch,
unsigned bpp,
unsigned red_mask,
unsigned green_mask,
unsigned blue_mask, BOOL topdown FI_DEFAULT(FALSE));
00838 DLL_API
void DLL_CALLCONV FreeImage_ConvertToRawBits(BYTE *bits, FIBITMAP *dib,
int pitch,
unsigned bpp,
unsigned red_mask,
unsigned green_mask,
unsigned blue_mask, BOOL topdown FI_DEFAULT(FALSE));
00839
00840 DLL_API FIBITMAP *DLL_CALLCONV FreeImage_ConvertToRGBF(FIBITMAP *dib);
00841
00842 DLL_API FIBITMAP *DLL_CALLCONV FreeImage_ConvertToStandardType(FIBITMAP *src, BOOL scale_linear FI_DEFAULT(TRUE));
00843 DLL_API FIBITMAP *DLL_CALLCONV FreeImage_ConvertToType(FIBITMAP *src, FREE_IMAGE_TYPE dst_type, BOOL scale_linear FI_DEFAULT(TRUE));
00844
00845
00846 DLL_API FIBITMAP *DLL_CALLCONV FreeImage_ToneMapping(FIBITMAP *dib, FREE_IMAGE_TMO tmo,
double first_param FI_DEFAULT(0),
double second_param FI_DEFAULT(0));
00847 DLL_API FIBITMAP* DLL_CALLCONV FreeImage_TmoDrago03(FIBITMAP *src,
double gamma FI_DEFAULT(2.2),
double exposure FI_DEFAULT(0));
00848 DLL_API FIBITMAP* DLL_CALLCONV FreeImage_TmoReinhard05(FIBITMAP *src,
double intensity FI_DEFAULT(0),
double contrast FI_DEFAULT(0));
00849
00850
00851
00852 DLL_API DWORD DLL_CALLCONV FreeImage_ZLibCompress(BYTE *target, DWORD target_size, BYTE *source, DWORD source_size);
00853 DLL_API DWORD DLL_CALLCONV FreeImage_ZLibUncompress(BYTE *target, DWORD target_size, BYTE *source, DWORD source_size);
00854 DLL_API DWORD DLL_CALLCONV FreeImage_ZLibGZip(BYTE *target, DWORD target_size, BYTE *source, DWORD source_size);
00855 DLL_API DWORD DLL_CALLCONV FreeImage_ZLibGUnzip(BYTE *target, DWORD target_size, BYTE *source, DWORD source_size);
00856 DLL_API DWORD DLL_CALLCONV FreeImage_ZLibCRC32(DWORD crc, BYTE *source, DWORD source_size);
00857
00858
00859
00860
00861
00862
00863 DLL_API FITAG *DLL_CALLCONV FreeImage_CreateTag();
00864 DLL_API
void DLL_CALLCONV FreeImage_DeleteTag(FITAG *tag);
00865 DLL_API FITAG *DLL_CALLCONV FreeImage_CloneTag(FITAG *tag);
00866
00867
00868 DLL_API
const char *DLL_CALLCONV FreeImage_GetTagKey(FITAG *tag);
00869 DLL_API
const char *DLL_CALLCONV FreeImage_GetTagDescription(FITAG *tag);
00870 DLL_API WORD DLL_CALLCONV FreeImage_GetTagID(FITAG *tag);
00871 DLL_API FREE_IMAGE_MDTYPE DLL_CALLCONV FreeImage_GetTagType(FITAG *tag);
00872 DLL_API DWORD DLL_CALLCONV FreeImage_GetTagCount(FITAG *tag);
00873 DLL_API DWORD DLL_CALLCONV FreeImage_GetTagLength(FITAG *tag);
00874 DLL_API
const void *DLL_CALLCONV FreeImage_GetTagValue(FITAG *tag);
00875
00876 DLL_API BOOL DLL_CALLCONV FreeImage_SetTagKey(FITAG *tag,
const char *key);
00877 DLL_API BOOL DLL_CALLCONV FreeImage_SetTagDescription(FITAG *tag,
const char *description);
00878 DLL_API BOOL DLL_CALLCONV FreeImage_SetTagID(FITAG *tag, WORD
id);
00879 DLL_API BOOL DLL_CALLCONV FreeImage_SetTagType(FITAG *tag, FREE_IMAGE_MDTYPE type);
00880 DLL_API BOOL DLL_CALLCONV FreeImage_SetTagCount(FITAG *tag, DWORD count);
00881 DLL_API BOOL DLL_CALLCONV FreeImage_SetTagLength(FITAG *tag, DWORD length);
00882 DLL_API BOOL DLL_CALLCONV FreeImage_SetTagValue(FITAG *tag,
const void *value);
00883
00884
00885 DLL_API FIMETADATA *DLL_CALLCONV FreeImage_FindFirstMetadata(FREE_IMAGE_MDMODEL model, FIBITMAP *dib, FITAG **tag);
00886 DLL_API BOOL DLL_CALLCONV FreeImage_FindNextMetadata(FIMETADATA *mdhandle, FITAG **tag);
00887 DLL_API
void DLL_CALLCONV FreeImage_FindCloseMetadata(FIMETADATA *mdhandle);
00888
00889
00890 DLL_API BOOL DLL_CALLCONV FreeImage_SetMetadata(FREE_IMAGE_MDMODEL model, FIBITMAP *dib,
const char *key, FITAG *tag);
00891 DLL_API BOOL DLL_CALLCONV FreeImage_GetMetadata(FREE_IMAGE_MDMODEL model, FIBITMAP *dib,
const char *key, FITAG **tag);
00892
00893
00894 DLL_API
unsigned DLL_CALLCONV FreeImage_GetMetadataCount(FREE_IMAGE_MDMODEL model, FIBITMAP *dib);
00895
00896
00897 DLL_API
const char* DLL_CALLCONV FreeImage_TagToString(FREE_IMAGE_MDMODEL model, FITAG *tag,
char *Make FI_DEFAULT(NULL));
00898
00899
00900
00901
00902
00903
00904 DLL_API FIBITMAP *DLL_CALLCONV FreeImage_RotateClassic(FIBITMAP *dib,
double angle);
00905 DLL_API FIBITMAP *DLL_CALLCONV FreeImage_RotateEx(FIBITMAP *dib,
double angle,
double x_shift,
double y_shift,
double x_origin,
double y_origin, BOOL use_mask);
00906 DLL_API BOOL DLL_CALLCONV FreeImage_FlipHorizontal(FIBITMAP *dib);
00907 DLL_API BOOL DLL_CALLCONV FreeImage_FlipVertical(FIBITMAP *dib);
00908 DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransform(
const char *src_file,
const char *dst_file, FREE_IMAGE_JPEG_OPERATION operation, BOOL perfect FI_DEFAULT(FALSE));
00909
00910
00911 DLL_API FIBITMAP *DLL_CALLCONV FreeImage_Rescale(FIBITMAP *dib,
int dst_width,
int dst_height, FREE_IMAGE_FILTER filter);
00912
00913
00914 DLL_API BOOL DLL_CALLCONV FreeImage_AdjustCurve(FIBITMAP *dib, BYTE *LUT, FREE_IMAGE_COLOR_CHANNEL channel);
00915 DLL_API BOOL DLL_CALLCONV FreeImage_AdjustGamma(FIBITMAP *dib,
double gamma);
00916 DLL_API BOOL DLL_CALLCONV FreeImage_AdjustBrightness(FIBITMAP *dib,
double percentage);
00917 DLL_API BOOL DLL_CALLCONV FreeImage_AdjustContrast(FIBITMAP *dib,
double percentage);
00918 DLL_API BOOL DLL_CALLCONV FreeImage_Invert(FIBITMAP *dib);
00919 DLL_API BOOL DLL_CALLCONV FreeImage_GetHistogram(FIBITMAP *dib, DWORD *histo, FREE_IMAGE_COLOR_CHANNEL channel FI_DEFAULT(FICC_BLACK));
00920
00921
00922 DLL_API FIBITMAP *DLL_CALLCONV FreeImage_GetChannel(FIBITMAP *dib, FREE_IMAGE_COLOR_CHANNEL channel);
00923 DLL_API BOOL DLL_CALLCONV FreeImage_SetChannel(FIBITMAP *dib, FIBITMAP *dib8, FREE_IMAGE_COLOR_CHANNEL channel);
00924 DLL_API FIBITMAP *DLL_CALLCONV FreeImage_GetComplexChannel(FIBITMAP *src, FREE_IMAGE_COLOR_CHANNEL channel);
00925 DLL_API BOOL DLL_CALLCONV FreeImage_SetComplexChannel(FIBITMAP *dst, FIBITMAP *src, FREE_IMAGE_COLOR_CHANNEL channel);
00926
00927
00928 DLL_API FIBITMAP *DLL_CALLCONV FreeImage_Copy(FIBITMAP *dib,
int left,
int top,
int right,
int bottom);
00929 DLL_API BOOL DLL_CALLCONV FreeImage_Paste(FIBITMAP *dst, FIBITMAP *src,
int left,
int top,
int alpha);
00930 DLL_API FIBITMAP *DLL_CALLCONV FreeImage_Composite(FIBITMAP *fg, BOOL useFileBkg FI_DEFAULT(FALSE), RGBQUAD *appBkColor FI_DEFAULT(NULL), FIBITMAP *bg FI_DEFAULT(NULL));
00931
00932
00933
00934
#if defined(__BORLANDC__)
00935
#pragma option pop
00936
#endif
00937
00938
#ifdef __cplusplus
00939
}
00940
#endif
00941
00942
#endif // FREEIMAGE_H