1 /*
2 
3 Boost Software License - Version 1.0 - August 17th, 2003
4 
5 Permission is hereby granted, free of charge, to any person or organization
6 obtaining a copy of the software and accompanying documentation covered by
7 this license (the "Software") to use, reproduce, display, distribute,
8 execute, and transmit the Software, and to prepare derivative works of the
9 Software, and to permit third-parties to whom the Software is furnished to
10 do so, all subject to the following:
11 
12 The copyright notices in the Software and this entire statement, including
13 the above license grant, this restriction and the following disclaimer,
14 must be included in all copies of the Software, in whole or in part, and
15 all derivative works of the Software, unless such copies or derivative
16 works are solely in the form of machine-executable object code generated by
17 a source language processor.
18 
19 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
22 SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
23 FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
24 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
25 DEALINGS IN THE SOFTWARE.
26 
27 */
28 module derelict.freeimage.functions;
29 
30 import core.stdc.config,
31        core.stdc.stddef;
32 
33 import derelict.util.loader,
34        derelict.util.system;
35 
36 import derelict.freeimage.types;
37 
38 extern(System) @nogc nothrow {
39     alias da_FreeImage_Initialise = void function(BOOL load_local_plugins_only = FALSE);
40     alias da_FreeImage_DeInitialise = void function();
41     alias da_FreeImage_GetVersion = const(char)* function();
42     alias da_FreeImage_GetCopyrightMessage = const(char)* function();
43 
44     alias da_FreeImage_SetOutputMessageStdCall = void function(FreeImage_OutputMessageFunctionStdCall omf);
45     alias da_FreeImage_SetOutputMessage = void function(FreeImage_OutputMessageFunction omf);
46 
47     alias da_FreeImage_OutputMessageProc = void function(int fif, const(char)* fmt, ...);
48 
49     alias da_FreeImage_Allocate = FIBITMAP* function(int width, int height, int bpp, uint red_mask = 0, uint green_mask = 0, uint blue_mask = 0);
50     alias da_FreeImage_AllocateT = FIBITMAP* function(FREE_IMAGE_TYPE type, int width, int height, int bpp = 8, uint red_mask = 0, uint green_mask = 0, uint blue_mask = 0);
51     alias da_FreeImage_Clone = FIBITMAP* function(FIBITMAP* dib);
52     alias da_FreeImage_Unload = void function(FIBITMAP* dib);
53 
54     alias da_FreeImage_HasPixels = BOOL function(FIBITMAP* dib);
55 
56     alias da_FreeImage_Load = FIBITMAP* function(FREE_IMAGE_FORMAT fif, const(char)* filename, int flags = 0);
57     alias da_FreeImage_LoadU = FIBITMAP* function(FREE_IMAGE_FORMAT fif, const(wchar_t)* filename, int flags = 0);
58     alias da_FreeImage_LoadFromHandle = FIBITMAP* function(FREE_IMAGE_FORMAT fif, FreeImageIO* io, fi_handle handle, int flags = 0);
59     alias da_FreeImage_Save = BOOL function(FREE_IMAGE_FORMAT fif, FIBITMAP* dib, const(char)* filename, int flags = 0);
60     alias da_FreeImage_SaveU = BOOL function(FREE_IMAGE_FORMAT fif, FIBITMAP* dib, const(wchar_t)* filename, int flags = 0);
61     alias da_FreeImage_SaveToHandle = BOOL function(FREE_IMAGE_FORMAT fif, FIBITMAP* dib, FreeImageIO* io, fi_handle handle, int flags = 0);
62 
63     alias da_FreeImage_OpenMemory = FIMEMORY* function(BYTE* data = null, DWORD size_in_bytes = 0);
64     alias da_FreeImage_CloseMemory = void function(FIMEMORY* stream);
65     alias da_FreeImage_LoadFromMemory = FIBITMAP* function(FREE_IMAGE_FORMAT fif, FIMEMORY* stream, int flags = 0);
66     alias da_FreeImage_SaveToMemory = BOOL function(FREE_IMAGE_FORMAT fif, FIBITMAP* dib, FIMEMORY* stream, int flags = 0);
67     alias da_FreeImage_TellMemory = c_long function(FIMEMORY* stream);
68     alias da_FreeImage_SeekMemory = BOOL function(FIMEMORY* stream, c_long offset, int origin);
69     alias da_FreeImage_AcquireMemory = BOOL function(FIMEMORY* stream, BYTE**data, DWORD* size_in_bytes);
70     alias da_FreeImage_ReadMemory = uint function(void* buffer, uint size, uint count, FIMEMORY* stream);
71     alias da_FreeImage_WriteMemory = uint function(const(void*) buffer, uint size, uint count, FIMEMORY* stream);
72 
73     alias da_FreeImage_LoadMultiBitmapFromMemory = FIMULTIBITMAP* function(FREE_IMAGE_FORMAT fif, FIMEMORY* stream, int flags = 0);
74     alias da_FreeImage_SaveMultiBitmapToMemory = BOOL function(FREE_IMAGE_FORMAT fif, FIMULTIBITMAP* bitmap, FIMEMORY* stream, int flags);
75 
76     alias da_FreeImage_RegisterLocalPlugin = FREE_IMAGE_FORMAT function(FI_InitProc proc_address, const(char)* format = null, const(char)* description = null, const(char)* extension = null, const(char)* regexpr = null);
77 
78     static if (Derelict_OS_Windows)
79         alias  da_FreeImage_RegisterExternalPlugin = FREE_IMAGE_FORMAT function(const(char)* path, const(char)* format = null, const(char)* description = null, const(char)* extension = null, const(char)* regexpr = null);
80 
81     alias da_FreeImage_GetFIFCount = int function();
82     alias da_FreeImage_SetPluginEnabled = int function(FREE_IMAGE_FORMAT fif, BOOL enable);
83     alias da_FreeImage_IsPluginEnabled = int function(FREE_IMAGE_FORMAT fif);
84     alias da_FreeImage_GetFIFFromFormat = FREE_IMAGE_FORMAT function(const(char)* format);
85     alias da_FreeImage_GetFIFFromMime = FREE_IMAGE_FORMAT function(const(char)* mime);
86     alias da_FreeImage_GetFormatFromFIF = const(char)* function(FREE_IMAGE_FORMAT fif);
87     alias da_FreeImage_GetFIFExtensionList = const(char)* function(FREE_IMAGE_FORMAT fif);
88     alias da_FreeImage_GetFIFDescription = const(char)* function(FREE_IMAGE_FORMAT fif);
89     alias da_FreeImage_GetFIFRegExpr = const(char)* function(FREE_IMAGE_FORMAT fif);
90     alias da_FreeImage_GetFIFMimeType = const(char)* function(FREE_IMAGE_FORMAT fif);
91     alias da_FreeImage_GetFIFFromFilename = FREE_IMAGE_FORMAT function(const(char)* filename);
92     alias da_FreeImage_GetFIFFromFilenameU = FREE_IMAGE_FORMAT function(const(wchar_t)* filename);
93     alias da_FreeImage_FIFSupportsReading = BOOL function(FREE_IMAGE_FORMAT fif);
94     alias da_FreeImage_FIFSupportsWriting = BOOL function(FREE_IMAGE_FORMAT fif);
95     alias da_FreeImage_FIFSupportsExportBPP = BOOL function(FREE_IMAGE_FORMAT fif, int bpp);
96     alias da_FreeImage_FIFSupportsExportType = BOOL function(FREE_IMAGE_FORMAT fif, FREE_IMAGE_TYPE type);
97     alias da_FreeImage_FIFSupportsICCProfiles = BOOL function(FREE_IMAGE_FORMAT fif);
98     alias da_FreeImage_FIFSupportsNoPixels = BOOL function(FREE_IMAGE_FORMAT fif);
99 
100     alias da_FreeImage_OpenMultiBitmap = FIMULTIBITMAP* function(FREE_IMAGE_FORMAT fif, const(char)* filename, BOOL create_new, BOOL read_only, BOOL keep_cache_in_memory = FALSE, int flags = 0);
101     alias da_FreeImage_OpenMultiBitmapFromHandle = FIMULTIBITMAP* function(FREE_IMAGE_FORMAT fif, FreeImageIO* io, fi_handle handle, int flags = 0);
102     alias da_FreeImage_SaveMultiBitmapToHandle = BOOL function(FREE_IMAGE_FORMAT fif, FIMULTIBITMAP* bitmap, FreeImageIO* io, fi_handle handle, int flags = 0);
103     alias da_FreeImage_CloseMultiBitmap = BOOL function(FIMULTIBITMAP* bitmap, int flags = 0);
104     alias da_FreeImage_GetPageCount = int function(FIMULTIBITMAP* bitmap);
105     alias da_FreeImage_AppendPage = void function(FIMULTIBITMAP* bitmap, FIBITMAP*data);
106     alias da_FreeImage_InsertPage = void function(FIMULTIBITMAP* bitmap, int page, FIBITMAP*data);
107     alias da_FreeImage_DeletePage = void function(FIMULTIBITMAP* bitmap, int page);
108     alias da_FreeImage_LockPage = FIBITMAP* function(FIMULTIBITMAP* bitmap, int page);
109     alias da_FreeImage_UnlockPage = void function(FIMULTIBITMAP* bitmap, FIBITMAP*data, BOOL changed);
110     alias da_FreeImage_MovePage = BOOL function(FIMULTIBITMAP* bitmap, int target, int source);
111     alias da_FreeImage_GetLockedPageNumbers = BOOL function(FIMULTIBITMAP* bitmap, int* pages, int* count);
112 
113     alias da_FreeImage_GetFileType = FREE_IMAGE_FORMAT function(const(char)* filename, int size = 0);
114     alias da_FreeImage_GetFileTypeU = FREE_IMAGE_FORMAT function(const(wchar_t)* filename, int size = 0);
115     alias da_FreeImage_GetFileTypeFromHandle = FREE_IMAGE_FORMAT function(FreeImageIO* io, fi_handle handle, int size = 0);
116     alias da_FreeImage_GetFileTypeFromMemory = FREE_IMAGE_FORMAT function(FIMEMORY* stream, int size = 0);
117 
118     alias da_FreeImage_GetImageType = FREE_IMAGE_TYPE function(FIBITMAP* dib);
119 
120     alias da_FreeImage_IsLittleEndian = BOOL function();
121     alias da_FreeImage_LookupX11Color = BOOL function(const(char)* szColor, BYTE* nRed, BYTE* nGreen, BYTE* nBlue);
122     alias da_FreeImage_LookupSVGColor = BOOL function(const(char)* szColor, BYTE* nRed, BYTE* nGreen, BYTE* nBlue);
123 
124     alias da_FreeImage_GetBits = BYTE* function(FIBITMAP* dib);
125     alias da_FreeImage_GetScanLine = BYTE* function(FIBITMAP* dib, int scanline);
126 
127     alias da_FreeImage_GetPixelIndex = BOOL function(FIBITMAP* dib, uint x, uint y, BYTE* value);
128     alias da_FreeImage_GetPixelColor = BOOL function(FIBITMAP* dib, uint x, uint y, RGBQUAD* value);
129     alias da_FreeImage_SetPixelIndex = BOOL function(FIBITMAP* dib, uint x, uint y, BYTE* value);
130     alias da_FreeImage_SetPixelColor = BOOL function(FIBITMAP* dib, uint x, uint y, RGBQUAD* value);
131 
132     alias da_FreeImage_GetColorsUsed = uint function(FIBITMAP* dib);
133     alias da_FreeImage_GetBPP = uint function(FIBITMAP* dib);
134     alias da_FreeImage_GetWidth = uint function(FIBITMAP* dib);
135     alias da_FreeImage_GetHeight = uint function(FIBITMAP* dib);
136     alias da_FreeImage_GetLine = uint function(FIBITMAP* dib);
137     alias da_FreeImage_GetPitch = uint function(FIBITMAP* dib);
138     alias da_FreeImage_GetDIBSize = uint function(FIBITMAP* dib);
139     alias da_FreeImage_GetMemorySize = uint function(FIBITMAP*); // Added in 3.17.0
140     alias da_FreeImage_GetPalette = RGBQUAD* function(FIBITMAP* dib);
141 
142     alias da_FreeImage_GetDotsPerMeterX = uint function(FIBITMAP* dib);
143     alias da_FreeImage_GetDotsPerMeterY = uint function(FIBITMAP* dib);
144     alias da_FreeImage_SetDotsPerMeterX = void function(FIBITMAP* dib, uint res);
145     alias da_FreeImage_SetDotsPerMeterY = void function(FIBITMAP* dib, uint res);
146 
147     alias da_FreeImage_GetInfoHeader = BITMAPINFOHEADER* function(FIBITMAP* dib);
148     alias da_FreeImage_GetInfo = BITMAPINFO* function(FIBITMAP* dib);
149     alias da_FreeImage_GetColorType = FREE_IMAGE_COLOR_TYPE function(FIBITMAP* dib);
150 
151     alias da_FreeImage_GetRedMask = uint function(FIBITMAP* dib);
152     alias da_FreeImage_GetGreenMask = uint function(FIBITMAP* dib);
153     alias da_FreeImage_GetBlueMask = uint function(FIBITMAP* dib);
154 
155     alias da_FreeImage_GetTransparencyCount = uint function(FIBITMAP* dib);
156     alias da_FreeImage_GetTransparencyTable = BYTE* function(FIBITMAP* dib);
157     alias da_FreeImage_SetTransparent = void function(FIBITMAP* dib, BOOL enabled);
158     alias da_FreeImage_SetTransparencyTable = void function(FIBITMAP* dib, BYTE* table, int count);
159     alias da_FreeImage_IsTransparent = BOOL function(FIBITMAP* dib);
160     alias da_FreeImage_SetTransparentIndex = void function(FIBITMAP* dib, int index);
161     alias da_FreeImage_GetTransparentIndex = int function(FIBITMAP* dib);
162 
163     alias da_FreeImage_HasBackgroundColor = BOOL function(FIBITMAP* dib);
164     alias da_FreeImage_GetBackgroundColor = BOOL function(FIBITMAP* dib, RGBQUAD* bkcolor);
165     alias da_FreeImage_SetBackgroundColor = BOOL function(FIBITMAP* dib, RGBQUAD* bkcolor);
166 
167     alias da_FreeImage_GetThumbnail = FIBITMAP* function(FIBITMAP* dib);
168     alias da_FreeImage_SetThumbnail = BOOL function(FIBITMAP* dib, FIBITMAP*thumbnail);
169 
170     alias da_FreeImage_GetICCProfile = FIICCPROFILE* function(FIBITMAP* dib);
171     alias da_FreeImage_CreateICCProfile = FIICCPROFILE* function(FIBITMAP* dib, void* data, c_long size);
172     alias da_FreeImage_DestroyICCProfile = void function(FIBITMAP* dib);
173 
174     alias da_FreeImage_ConvertLine1To4 = void function(BYTE* target, BYTE* source, int width_in_pixels);
175     alias da_FreeImage_ConvertLine8To4 = void function(BYTE* target, BYTE* source, int width_in_pixels, RGBQUAD* palette);
176     alias da_FreeImage_ConvertLine16To4_555 = void function(BYTE* target, BYTE* source, int width_in_pixels);
177     alias da_FreeImage_ConvertLine16To4_565 = void function(BYTE* target, BYTE* source, int width_in_pixels);
178     alias da_FreeImage_ConvertLine24To4 = void function(BYTE* target, BYTE* source, int width_in_pixels);
179     alias da_FreeImage_ConvertLine32To4 = void function(BYTE* target, BYTE* source, int width_in_pixels);
180     alias da_FreeImage_ConvertLine1To8 = void function(BYTE* target, BYTE* source, int width_in_pixels);
181     alias da_FreeImage_ConvertLine4To8 = void function(BYTE* target, BYTE* source, int width_in_pixels);
182     alias da_FreeImage_ConvertLine16To8_555 = void function(BYTE* target, BYTE* source, int width_in_pixels);
183     alias da_FreeImage_ConvertLine16To8_565 = void function(BYTE* target, BYTE* source, int width_in_pixels);
184     alias da_FreeImage_ConvertLine24To8 = void function(BYTE* target, BYTE* source, int width_in_pixels);
185     alias da_FreeImage_ConvertLine32To8 = void function(BYTE* target, BYTE* source, int width_in_pixels);
186     alias da_FreeImage_ConvertLine1To16_555 = void function(BYTE* target, BYTE* source, int width_in_pixels, RGBQUAD* palette);
187     alias da_FreeImage_ConvertLine4To16_555 = void function(BYTE* target, BYTE* source, int width_in_pixels, RGBQUAD* palette);
188     alias da_FreeImage_ConvertLine8To16_555 = void function(BYTE* target, BYTE* source, int width_in_pixels, RGBQUAD* palette);
189     alias da_FreeImage_ConvertLine16_565_To16_555 = void function(BYTE* target, BYTE* source, int width_in_pixels);
190     alias da_FreeImage_ConvertLine24To16_555 = void function(BYTE* target, BYTE* source, int width_in_pixels);
191     alias da_FreeImage_ConvertLine32To16_555 = void function(BYTE* target, BYTE* source, int width_in_pixels);
192     alias da_FreeImage_ConvertLine1To16_565 = void function(BYTE* target, BYTE* source, int width_in_pixels, RGBQUAD* palette);
193     alias da_FreeImage_ConvertLine4To16_565 = void function(BYTE* target, BYTE* source, int width_in_pixels, RGBQUAD* palette);
194     alias da_FreeImage_ConvertLine8To16_565 = void function(BYTE* target, BYTE* source, int width_in_pixels, RGBQUAD* palette);
195     alias da_FreeImage_ConvertLine16_555_To16_565 = void function(BYTE* target, BYTE* source, int width_in_pixels);
196     alias da_FreeImage_ConvertLine24To16_565 = void function(BYTE* target, BYTE* source, int width_in_pixels);
197     alias da_FreeImage_ConvertLine32To16_565 = void function(BYTE* target, BYTE* source, int width_in_pixels);
198     alias da_FreeImage_ConvertLine1To24 = void function(BYTE* target, BYTE* source, int width_in_pixels, RGBQUAD* palette);
199     alias da_FreeImage_ConvertLine4To24 = void function(BYTE* target, BYTE* source, int width_in_pixels, RGBQUAD* palette);
200     alias da_FreeImage_ConvertLine8To24 = void function(BYTE* target, BYTE* source, int width_in_pixels, RGBQUAD* palette);
201     alias da_FreeImage_ConvertLine16To24_555 = void function(BYTE* target, BYTE* source, int width_in_pixels);
202     alias da_FreeImage_ConvertLine16To24_565 = void function(BYTE* target, BYTE* source, int width_in_pixels);
203     alias da_FreeImage_ConvertLine32To24 = void function(BYTE* target, BYTE* source, int width_in_pixels);
204     alias da_FreeImage_ConvertLine1To32 = void function(BYTE* target, BYTE* source, int width_in_pixels, RGBQUAD* palette);
205     alias da_FreeImage_ConvertLine4To32 = void function(BYTE* target, BYTE* source, int width_in_pixels, RGBQUAD* palette);
206     alias da_FreeImage_ConvertLine8To32 = void function(BYTE* target, BYTE* source, int width_in_pixels, RGBQUAD* palette);
207     alias da_FreeImage_ConvertLine16To32_555 = void function(BYTE* target, BYTE* source, int width_in_pixels);
208     alias da_FreeImage_ConvertLine16To32_565 = void function(BYTE* target, BYTE* source, int width_in_pixels);
209     alias da_FreeImage_ConvertLine24To32 = void function(BYTE* target, BYTE* source, int width_in_pixels);
210 
211     alias da_FreeImage_ConvertTo4Bits = FIBITMAP* function(FIBITMAP* dib);
212     alias da_FreeImage_ConvertTo8Bits = FIBITMAP* function(FIBITMAP* dib);
213     alias da_FreeImage_ConvertToGreyscale = FIBITMAP* function(FIBITMAP* dib);
214     alias da_FreeImage_ConvertTo16Bits555 = FIBITMAP* function(FIBITMAP* dib);
215     alias da_FreeImage_ConvertTo16Bits565 = FIBITMAP* function(FIBITMAP* dib);
216     alias da_FreeImage_ConvertTo24Bits = FIBITMAP* function(FIBITMAP* dib);
217     alias da_FreeImage_ConvertTo32Bits = FIBITMAP* function(FIBITMAP* dib);
218     alias da_FreeImage_ColorQuantize = FIBITMAP* function(FIBITMAP* dib, FREE_IMAGE_QUANTIZE quantize);
219     alias da_FreeImage_ColorQuantizeEx = FIBITMAP* function(FIBITMAP* dib, FREE_IMAGE_QUANTIZE quantize = FIQ_WUQUANT, int PaletteSize = 256, int ReserveSize = 0, RGBQUAD* ReservePalette = null);
220     alias da_FreeImage_Threshold = FIBITMAP* function(FIBITMAP* dib, BYTE T);
221     alias da_FreeImage_Dither = FIBITMAP* function(FIBITMAP* dib, FREE_IMAGE_DITHER algorithm);
222 
223     alias da_FreeImage_ConvertFromRawBits = FIBITMAP* function(BYTE* bits, int width, int height, int pitch, uint bpp, uint red_mask, uint green_mask, uint blue_mask, BOOL topdown = FALSE);
224     alias da_FreeImage_ConvertFromRawBitsEx = FIBITMAP* function(BOOL,BYTE*,FREE_IMAGE_TYPE,int,int,int,uint,uint,uint,uint,BOOL topdown=FALSE);    // Added in 3.17.0
225     alias da_FreeImage_ConvertToRawBits = void function(BYTE* bits, FIBITMAP* dib, int pitch, uint bpp, uint red_mask, uint green_mask, uint blue_mask, BOOL topdown = FALSE);
226 
227     alias da_FreeImage_ConvertToFloat = FIBITMAP* function(FIBITMAP* dib);
228     alias da_FreeImage_ConvertToRGBF = FIBITMAP* function(FIBITMAP* dib);
229     alias da_FreeImage_ConvertToRGBAF = FIBITMAP* function(FIBITMAP*);    // Added in 3.17.0
230     alias da_FreeImage_ConvertToUINT16 = FIBITMAP* function(FIBITMAP* dib);
231     alias da_FreeImage_ConvertToRGB16 = FIBITMAP* function(FIBITMAP* dib);
232     alias da_FreeImage_ConvertToRGBA16 = FIBITMAP* function(FIBITMAP*);   // Added in 3.17.0
233 
234     alias da_FreeImage_ConvertToStandardType = FIBITMAP* function(FIBITMAP* src, BOOL scale_linear = TRUE);
235     alias da_FreeImage_ConvertToType = FIBITMAP* function(FIBITMAP* src, FREE_IMAGE_TYPE dst_type, BOOL scale_linear = TRUE);
236 
237     alias da_FreeImage_ToneMapping = FIBITMAP* function(FIBITMAP* dib, FREE_IMAGE_TMO tmo, double first_param = 0, double second_param = 0);
238     alias da_FreeImage_TmoDrago03 = FIBITMAP* function(FIBITMAP* src, double gamma = 2.2, double exposure = 0);
239     alias da_FreeImage_TmoReinhard05 = FIBITMAP* function(FIBITMAP* src, double intensity = 0, double contrast = 0);
240     alias da_FreeImage_TmoReinhard05Ex = FIBITMAP* function(FIBITMAP* src, double intensity = 0, double contrast = 0, double adaptation = 1, double color_correction = 0);
241 
242     alias da_FreeImage_TmoFattal02 = FIBITMAP* function(FIBITMAP* src, double color_saturation = 0.5, double attenuation = 0.85);
243 
244     alias da_FreeImage_ZLibCompress = DWORD function(BYTE* target, DWORD target_size, BYTE* source, DWORD source_size);
245     alias da_FreeImage_ZLibUncompress = DWORD function(BYTE* target, DWORD target_size, BYTE* source, DWORD source_size);
246     alias da_FreeImage_ZLibGZip = DWORD function(BYTE* target, DWORD target_size, BYTE* source, DWORD source_size);
247     alias da_FreeImage_ZLibGUnzip = DWORD function(BYTE* target, DWORD target_size, BYTE* source, DWORD source_size);
248     alias da_FreeImage_ZLibCRC32 = DWORD function(DWORD crc, BYTE* source, DWORD source_size);
249 
250     alias da_FreeImage_CreateTag = FITAG* function();
251     alias da_FreeImage_DeleteTag = void function(FITAG* tag);
252     alias da_FreeImage_CloneTag = FITAG* function(FITAG* tag);
253 
254     alias da_FreeImage_GetTagKey = const(char)* function(FITAG* tag);
255     alias da_FreeImage_GetTagDescription = const(char)* function(FITAG* tag);
256     alias da_FreeImage_GetTagID = WORD function(FITAG* tag);
257     alias da_FreeImage_GetTagType = FREE_IMAGE_MDTYPE function(FITAG* tag);
258     alias da_FreeImage_GetTagCount = DWORD function(FITAG* tag);
259     alias da_FreeImage_GetTagLength = DWORD function(FITAG* tag);
260     alias da_FreeImage_GetTagValue = const(void)* function(FITAG* tag);
261 
262     alias da_FreeImage_SetTagKey = BOOL function(FITAG* tag, const(char)* key);
263     alias da_FreeImage_SetTagDescription = BOOL function(FITAG* tag, const(char)* description);
264     alias da_FreeImage_SetTagID = BOOL function(FITAG* tag, WORD id);
265     alias da_FreeImage_SetTagType = BOOL function(FITAG* tag, FREE_IMAGE_MDTYPE type);
266     alias da_FreeImage_SetTagCount = BOOL function(FITAG* tag, DWORD count);
267     alias da_FreeImage_SetTagLength = BOOL function(FITAG* tag, DWORD length);
268     alias da_FreeImage_SetTagValue = BOOL function(FITAG* tag, const(void)* value);
269 
270     alias da_FreeImage_FindFirstMetadata = FIMETADATA* function(FREE_IMAGE_MDMODEL model, FIBITMAP* dib, FITAG** tag);
271     alias da_FreeImage_FindNextMetadata = BOOL function(FIMETADATA* mdhandle, FITAG** tag);
272     alias da_FreeImage_FindCloseMetadata = void function(FIMETADATA* mdhandle);
273 
274     alias da_FreeImage_SetMetadata = BOOL function(FREE_IMAGE_MDMODEL model, FIBITMAP* dib, const(char)* key, FITAG* tag);
275     alias da_FreeImage_GetMetadata = BOOL function(FREE_IMAGE_MDMODEL model, FIBITMAP* dib, const(char)* key, FITAG** tag);
276     alias da_FreeImage_SetMetadataKeyValue = BOOL function(FREE_IMAGE_MDMODEL,FIBITMAP*,const(char)*,const(char)*); // Added in 3.17.0
277 
278     alias da_FreeImage_GetMetadataCount = uint function(FREE_IMAGE_MDMODEL model, FIBITMAP* dib);
279     alias da_FreeImage_CloneMetadata = BOOL function(FIBITMAP* dst, FIBITMAP* src);
280 
281     alias da_FreeImage_TagToString = const(char)* function(FREE_IMAGE_MDMODEL model, FITAG* tag, char* Make = null);
282 
283     alias da_FreeImage_JPEGTransform = BOOL function(const(char)* src_file, const(char)* dst_file, FREE_IMAGE_JPEG_OPERATION operation, BOOL perfect=TRUE);
284     alias da_FreeImage_JPEGTransformU = BOOL function(const(wchar_t)* src_file, const(wchar_t)* dst_file, FREE_IMAGE_JPEG_OPERATION operation, BOOL perfect=TRUE);
285     alias da_FreeImage_JPEGCrop = BOOL function(const(char)* src_file, const(char)* dst_file, int left, int top, int right, int bottom);
286     alias da_FreeImage_JPEGCropU = BOOL function(const(wchar_t)* src_file, const(wchar_t)* dst_file, int left, int top, int right, int bottom);
287 
288     // FreeImage 3.16.0 -- 4 functions
289     alias da_FreeImage_JPEGTransformFromHandle = BOOL function(FreeImageIO*,fi_handle,FreeImageIO*,fi_handle,FREE_IMAGE_JPEG_OPERATION,int*,int*,int*,int*,BOOL perfect=TRUE);
290     alias da_FreeImage_JPEGTransformCombined = BOOL function(const(char)*,const(char)*,FREE_IMAGE_JPEG_OPERATION,int*,int*,int*,int*,BOOL perfect=TRUE);
291     alias da_FreeImage_JPEGTransformCombinedU = BOOL function(const(wchar_t)*,const(wchar_t)*,FREE_IMAGE_JPEG_OPERATION,int*,int*,int*,int*,BOOL perfect=TRUE);
292     alias da_FreeImage_JPEGTransformCombinedFromMemory = BOOL function(FIMEMORY*,FIMEMORY*,FREE_IMAGE_JPEG_OPERATION,int*,int*,int*,int*,BOOL perfect=TRUE);
293 
294     alias da_FreeImage_RotateClassic = FIBITMAP* function(FIBITMAP* dib, double angle);
295     alias da_FreeImage_Rotate = FIBITMAP* function(FIBITMAP* dib, double angle, const(void*) bkcolor = null);
296     alias da_FreeImage_RotateEx = FIBITMAP* function(FIBITMAP* dib, double angle, double x_shift, double y_shift, double x_origin, double y_origin, BOOL use_mask);
297     alias da_FreeImage_FlipHorizontal = BOOL function(FIBITMAP* dib);
298     alias da_FreeImage_FlipVertical = BOOL function(FIBITMAP* dib);
299 
300     alias da_FreeImage_Rescale = FIBITMAP* function(FIBITMAP* dib, int dst_width, int dst_height, FREE_IMAGE_FILTER filter);
301     alias da_FreeImage_MakeThumbnail = FIBITMAP* function(FIBITMAP* dib, int max_pixel_size, BOOL convert = TRUE);
302     alias da_FreeImage_RescaleRect = FIBITMAP* function(FIBITMAP*,int,int,int,int,int,int,FREE_IMAGE_FILTER filter = FILTER_CATMULLROM,uint flags = 0); // Added in 3.17.0
303 
304     alias da_FreeImage_AdjustCurve = BOOL function(FIBITMAP* dib, BYTE* LUT, FREE_IMAGE_COLOR_CHANNEL channel);
305     alias da_FreeImage_AdjustGamma = BOOL function(FIBITMAP* dib, double gamma);
306     alias da_FreeImage_AdjustBrightness = BOOL function(FIBITMAP* dib, double percentage);
307     alias da_FreeImage_AdjustContrast = BOOL function(FIBITMAP* dib, double percentage);
308     alias da_FreeImage_Invert = BOOL function(FIBITMAP* dib);
309     alias da_FreeImage_GetHistogram = BOOL function(FIBITMAP* dib, DWORD* histo, FREE_IMAGE_COLOR_CHANNEL channel = FICC_BLACK);
310     alias da_FreeImage_GetAdjustColorsLookupTable = int function(BYTE* LUT, double brightness, double contrast, double gamma, BOOL invert);
311     alias da_FreeImage_AdjustColors = BOOL function(FIBITMAP* dib, double brightness, double contrast, double gamma, BOOL invert = FALSE);
312     alias da_FreeImage_ApplyColorMapping = uint function(FIBITMAP* dib, RGBQUAD* srccolors, RGBQUAD* dstcolors, uint count, BOOL ignore_alpha, BOOL swap);
313     alias da_FreeImage_SwapColors = uint function(FIBITMAP* dib, RGBQUAD* color_a, RGBQUAD* color_b, BOOL ignore_alpha);
314     alias da_FreeImage_ApplyPaletteIndexMapping = uint function(FIBITMAP* dib, BYTE* srcindices,   BYTE* dstindices, uint count, BOOL swap);
315     alias da_FreeImage_SwapPaletteIndices = uint function(FIBITMAP* dib, BYTE* index_a, BYTE* index_b);
316 
317     alias da_FreeImage_GetChannel = FIBITMAP* function(FIBITMAP* dib, FREE_IMAGE_COLOR_CHANNEL channel);
318     alias da_FreeImage_SetChannel = BOOL function(FIBITMAP*dst, FIBITMAP*src, FREE_IMAGE_COLOR_CHANNEL channel);
319     alias da_FreeImage_GetComplexChannel = FIBITMAP* function(FIBITMAP*src, FREE_IMAGE_COLOR_CHANNEL channel);
320     alias da_FreeImage_SetComplexChannel = BOOL function(FIBITMAP*dst, FIBITMAP*src, FREE_IMAGE_COLOR_CHANNEL channel);
321 
322     alias da_FreeImage_Copy = FIBITMAP* function(FIBITMAP* dib, int left, int top, int right, int bottom);
323     alias da_FreeImage_Paste = BOOL function(FIBITMAP*dst, FIBITMAP*src, int left, int top, int alpha);
324     alias da_FreeImage_CreateView = FIBITMAP* function(FIBITMAP*,uint,uint,uint,uint); // Added in 3.17.0
325 
326     alias da_FreeImage_Composite = FIBITMAP* function(FIBITMAP*fg, BOOL useFileBkg = FALSE, RGBQUAD* appBkColor = null, FIBITMAP*bg = null);
327     alias da_FreeImage_PreMultiplyWithAlpha = BOOL function(FIBITMAP* dib);
328 
329     alias da_FreeImage_FillBackground = BOOL function(FIBITMAP* dib, const(void*) color, int options = 0);
330     alias da_FreeImage_EnlargeCanvas = FIBITMAP* function(FIBITMAP*src, int left, int top, int right, int bottom, const(void*) color, int options = 0);
331     alias da_FreeImage_AllocateEx = FIBITMAP* function(int width, int height, int bpp, const(RGBQUAD)* color, int options = 0, const(RGBQUAD)* palette = null, uint red_mask = 0, uint green_mask = 0, uint blue_mask = 0);
332     alias da_FreeImage_AllocateExT = FIBITMAP* function(FREE_IMAGE_TYPE type, int width, int height, int bpp, const(void*) color, int options = 0, const(RGBQUAD)* palette = null, uint red_mask = 0, uint green_mask = 0, uint blue_mask = 0);
333 
334     alias da_FreeImage_MultigridPoissonSolver = FIBITMAP* function(FIBITMAP*Laplacian, int ncycle = 3);
335 }
336 
337 __gshared {
338     da_FreeImage_Initialise FreeImage_Initialise;
339     da_FreeImage_DeInitialise FreeImage_DeInitialise;
340     da_FreeImage_GetVersion FreeImage_GetVersion;
341     da_FreeImage_GetCopyrightMessage FreeImage_GetCopyrightMessage;
342     da_FreeImage_SetOutputMessageStdCall FreeImage_SetOutputMessageStdCall;
343     da_FreeImage_SetOutputMessage FreeImage_SetOutputMessage;
344     da_FreeImage_OutputMessageProc FreeImage_OutputMessageProc;
345     da_FreeImage_Allocate FreeImage_Allocate;
346     da_FreeImage_AllocateT FreeImage_AllocateT;
347     da_FreeImage_Clone FreeImage_Clone;
348     da_FreeImage_Unload FreeImage_Unload;
349     da_FreeImage_HasPixels FreeImage_HasPixels;
350     da_FreeImage_Load FreeImage_Load;
351     da_FreeImage_LoadU FreeImage_LoadU;
352     da_FreeImage_LoadFromHandle FreeImage_LoadFromHandle;
353     da_FreeImage_Save FreeImage_Save;
354     da_FreeImage_SaveU FreeImage_SaveU;
355     da_FreeImage_SaveToHandle FreeImage_SaveToHandle;
356     da_FreeImage_OpenMemory FreeImage_OpenMemory;
357     da_FreeImage_CloseMemory FreeImage_CloseMemory;
358     da_FreeImage_LoadFromMemory FreeImage_LoadFromMemory;
359     da_FreeImage_SaveToMemory FreeImage_SaveToMemory;
360     da_FreeImage_TellMemory FreeImage_TellMemory;
361     da_FreeImage_SeekMemory FreeImage_SeekMemory;
362     da_FreeImage_AcquireMemory FreeImage_AcquireMemory;
363     da_FreeImage_ReadMemory FreeImage_ReadMemory;
364     da_FreeImage_WriteMemory FreeImage_WriteMemory;
365     da_FreeImage_LoadMultiBitmapFromMemory FreeImage_LoadMultiBitmapFromMemory;
366     da_FreeImage_SaveMultiBitmapToMemory FreeImage_SaveMultiBitmapToMemory;
367     da_FreeImage_RegisterLocalPlugin FreeImage_RegisterLocalPlugin;
368 
369     static if (Derelict_OS_Windows)
370         da_FreeImage_RegisterExternalPlugin FreeImage_RegisterExternalPlugin;
371 
372     da_FreeImage_GetFIFCount FreeImage_GetFIFCount;
373     da_FreeImage_SetPluginEnabled FreeImage_SetPluginEnabled;
374     da_FreeImage_IsPluginEnabled FreeImage_IsPluginEnabled;
375     da_FreeImage_GetFIFFromFormat FreeImage_GetFIFFromFormat;
376     da_FreeImage_GetFIFFromMime FreeImage_GetFIFFromMime;
377     da_FreeImage_GetFormatFromFIF FreeImage_GetFormatFromFIF;
378     da_FreeImage_GetFIFExtensionList FreeImage_GetFIFExtensionList;
379     da_FreeImage_GetFIFDescription FreeImage_GetFIFDescription;
380     da_FreeImage_GetFIFRegExpr FreeImage_GetFIFRegExpr;
381     da_FreeImage_GetFIFMimeType FreeImage_GetFIFMimeType;
382     da_FreeImage_GetFIFFromFilename FreeImage_GetFIFFromFilename;
383     da_FreeImage_GetFIFFromFilenameU FreeImage_GetFIFFromFilenameU;
384     da_FreeImage_FIFSupportsReading FreeImage_FIFSupportsReading;
385     da_FreeImage_FIFSupportsWriting FreeImage_FIFSupportsWriting;
386     da_FreeImage_FIFSupportsExportBPP FreeImage_FIFSupportsExportBPP;
387     da_FreeImage_FIFSupportsExportType FreeImage_FIFSupportsExportType;
388     da_FreeImage_FIFSupportsICCProfiles FreeImage_FIFSupportsICCProfiles;
389     da_FreeImage_FIFSupportsNoPixels FreeImage_FIFSupportsNoPixels;
390     da_FreeImage_OpenMultiBitmap FreeImage_OpenMultiBitmap;
391     da_FreeImage_OpenMultiBitmapFromHandle FreeImage_OpenMultiBitmapFromHandle;
392     da_FreeImage_SaveMultiBitmapToHandle FreeImage_SaveMultiBitmapToHandle;
393     da_FreeImage_CloseMultiBitmap FreeImage_CloseMultiBitmap;
394     da_FreeImage_GetPageCount FreeImage_GetPageCount;
395     da_FreeImage_AppendPage FreeImage_AppendPage;
396     da_FreeImage_InsertPage FreeImage_InsertPage;
397     da_FreeImage_DeletePage FreeImage_DeletePage;
398     da_FreeImage_LockPage FreeImage_LockPage;
399     da_FreeImage_UnlockPage FreeImage_UnlockPage;
400     da_FreeImage_MovePage FreeImage_MovePage;
401     da_FreeImage_GetLockedPageNumbers FreeImage_GetLockedPageNumbers;
402     da_FreeImage_GetFileType FreeImage_GetFileType;
403     da_FreeImage_GetFileTypeU FreeImage_GetFileTypeU;
404     da_FreeImage_GetFileTypeFromHandle FreeImage_GetFileTypeFromHandle;
405     da_FreeImage_GetFileTypeFromMemory FreeImage_GetFileTypeFromMemory;
406     da_FreeImage_GetImageType FreeImage_GetImageType;
407     da_FreeImage_IsLittleEndian FreeImage_IsLittleEndian;
408     da_FreeImage_LookupX11Color FreeImage_LookupX11Color;
409     da_FreeImage_LookupSVGColor FreeImage_LookupSVGColor;
410     da_FreeImage_GetBits FreeImage_GetBits;
411     da_FreeImage_GetScanLine FreeImage_GetScanLine;
412     da_FreeImage_GetPixelIndex FreeImage_GetPixelIndex;
413     da_FreeImage_GetPixelColor FreeImage_GetPixelColor;
414     da_FreeImage_SetPixelIndex FreeImage_SetPixelIndex;
415     da_FreeImage_SetPixelColor FreeImage_SetPixelColor;
416     da_FreeImage_GetColorsUsed FreeImage_GetColorsUsed;
417     da_FreeImage_GetBPP FreeImage_GetBPP;
418     da_FreeImage_GetWidth FreeImage_GetWidth;
419     da_FreeImage_GetHeight FreeImage_GetHeight;
420     da_FreeImage_GetLine FreeImage_GetLine;
421     da_FreeImage_GetPitch FreeImage_GetPitch;
422     da_FreeImage_GetDIBSize FreeImage_GetDIBSize;
423     da_FreeImage_GetMemorySize FreeImage_GetMemorySize;
424     da_FreeImage_GetPalette FreeImage_GetPalette;
425     da_FreeImage_GetDotsPerMeterX FreeImage_GetDotsPerMeterX;
426     da_FreeImage_GetDotsPerMeterY FreeImage_GetDotsPerMeterY;
427     da_FreeImage_SetDotsPerMeterX FreeImage_SetDotsPerMeterX;
428     da_FreeImage_SetDotsPerMeterY FreeImage_SetDotsPerMeterY;
429     da_FreeImage_GetInfoHeader FreeImage_GetInfoHeader;
430     da_FreeImage_GetInfo FreeImage_GetInfo;
431     da_FreeImage_GetColorType FreeImage_GetColorType;
432     da_FreeImage_GetRedMask FreeImage_GetRedMask;
433     da_FreeImage_GetGreenMask FreeImage_GetGreenMask;
434     da_FreeImage_GetBlueMask FreeImage_GetBlueMask;
435     da_FreeImage_GetTransparencyCount FreeImage_GetTransparencyCount;
436     da_FreeImage_GetTransparencyTable FreeImage_GetTransparencyTable;
437     da_FreeImage_SetTransparent FreeImage_SetTransparent;
438     da_FreeImage_SetTransparencyTable FreeImage_SetTransparencyTable;
439     da_FreeImage_IsTransparent FreeImage_IsTransparent;
440     da_FreeImage_SetTransparentIndex FreeImage_SetTransparentIndex;
441     da_FreeImage_GetTransparentIndex FreeImage_GetTransparentIndex;
442     da_FreeImage_HasBackgroundColor FreeImage_HasBackgroundColor;
443     da_FreeImage_GetBackgroundColor FreeImage_GetBackgroundColor;
444     da_FreeImage_SetBackgroundColor FreeImage_SetBackgroundColor;
445     da_FreeImage_GetThumbnail FreeImage_GetThumbnail;
446     da_FreeImage_SetThumbnail FreeImage_SetThumbnail;
447     da_FreeImage_GetICCProfile FreeImage_GetICCProfile;
448     da_FreeImage_CreateICCProfile FreeImage_CreateICCProfile;
449     da_FreeImage_DestroyICCProfile FreeImage_DestroyICCProfile;
450     da_FreeImage_ConvertLine1To4 FreeImage_ConvertLine1To4;
451     da_FreeImage_ConvertLine8To4 FreeImage_ConvertLine8To4;
452     da_FreeImage_ConvertLine16To4_555 FreeImage_ConvertLine16To4_555;
453     da_FreeImage_ConvertLine16To4_565 FreeImage_ConvertLine16To4_565;
454     da_FreeImage_ConvertLine24To4 FreeImage_ConvertLine24To4;
455     da_FreeImage_ConvertLine32To4 FreeImage_ConvertLine32To4;
456     da_FreeImage_ConvertLine1To8 FreeImage_ConvertLine1To8;
457     da_FreeImage_ConvertLine4To8 FreeImage_ConvertLine4To8;
458     da_FreeImage_ConvertLine16To8_555 FreeImage_ConvertLine16To8_555;
459     da_FreeImage_ConvertLine16To8_565 FreeImage_ConvertLine16To8_565;
460     da_FreeImage_ConvertLine24To8 FreeImage_ConvertLine24To8;
461     da_FreeImage_ConvertLine32To8 FreeImage_ConvertLine32To8;
462     da_FreeImage_ConvertLine1To16_555 FreeImage_ConvertLine1To16_555;
463     da_FreeImage_ConvertLine4To16_555 FreeImage_ConvertLine4To16_555;
464     da_FreeImage_ConvertLine8To16_555 FreeImage_ConvertLine8To16_555;
465     da_FreeImage_ConvertLine16_565_To16_555 FreeImage_ConvertLine16_565_To16_555;
466     da_FreeImage_ConvertLine24To16_555 FreeImage_ConvertLine24To16_555;
467     da_FreeImage_ConvertLine32To16_555 FreeImage_ConvertLine32To16_555;
468     da_FreeImage_ConvertLine1To16_565 FreeImage_ConvertLine1To16_565;
469     da_FreeImage_ConvertLine4To16_565 FreeImage_ConvertLine4To16_565;
470     da_FreeImage_ConvertLine8To16_565 FreeImage_ConvertLine8To16_565;
471     da_FreeImage_ConvertLine16_555_To16_565 FreeImage_ConvertLine16_555_To16_565;
472     da_FreeImage_ConvertLine24To16_565 FreeImage_ConvertLine24To16_565;
473     da_FreeImage_ConvertLine32To16_565 FreeImage_ConvertLine32To16_565;
474     da_FreeImage_ConvertLine1To24 FreeImage_ConvertLine1To24;
475     da_FreeImage_ConvertLine4To24 FreeImage_ConvertLine4To24;
476     da_FreeImage_ConvertLine8To24 FreeImage_ConvertLine8To24;
477     da_FreeImage_ConvertLine16To24_555 FreeImage_ConvertLine16To24_555;
478     da_FreeImage_ConvertLine16To24_565 FreeImage_ConvertLine16To24_565;
479     da_FreeImage_ConvertLine32To24 FreeImage_ConvertLine32To24;
480     da_FreeImage_ConvertLine1To32 FreeImage_ConvertLine1To32;
481     da_FreeImage_ConvertLine4To32 FreeImage_ConvertLine4To32;
482     da_FreeImage_ConvertLine8To32 FreeImage_ConvertLine8To32;
483     da_FreeImage_ConvertLine16To32_555 FreeImage_ConvertLine16To32_555;
484     da_FreeImage_ConvertLine16To32_565 FreeImage_ConvertLine16To32_565;
485     da_FreeImage_ConvertLine24To32 FreeImage_ConvertLine24To32;
486     da_FreeImage_ConvertTo4Bits FreeImage_ConvertTo4Bits;
487     da_FreeImage_ConvertTo8Bits FreeImage_ConvertTo8Bits;
488     da_FreeImage_ConvertToGreyscale FreeImage_ConvertToGreyscale;
489     da_FreeImage_ConvertTo16Bits555 FreeImage_ConvertTo16Bits555;
490     da_FreeImage_ConvertTo16Bits565 FreeImage_ConvertTo16Bits565;
491     da_FreeImage_ConvertTo24Bits FreeImage_ConvertTo24Bits;
492     da_FreeImage_ConvertTo32Bits FreeImage_ConvertTo32Bits;
493     da_FreeImage_ColorQuantize FreeImage_ColorQuantize;
494     da_FreeImage_ColorQuantizeEx FreeImage_ColorQuantizeEx;
495     da_FreeImage_Threshold FreeImage_Threshold;
496     da_FreeImage_Dither FreeImage_Dither;
497     da_FreeImage_ConvertFromRawBits FreeImage_ConvertFromRawBits;
498     da_FreeImage_ConvertFromRawBitsEx FreeImage_ConvertFromRawBitsEx;
499     da_FreeImage_ConvertToRawBits FreeImage_ConvertToRawBits;
500     da_FreeImage_ConvertToFloat FreeImage_ConvertToFloat;
501     da_FreeImage_ConvertToRGBF FreeImage_ConvertToRGBF;
502     da_FreeImage_ConvertToRGBAF FreeImage_ConvertToRGBAF;
503     da_FreeImage_ConvertToUINT16 FreeImage_ConvertToUINT16;
504     da_FreeImage_ConvertToRGB16 FreeImage_ConvertToRGB16;
505     da_FreeImage_ConvertToRGBA16 FreeImage_ConvertToRGBA16;
506     da_FreeImage_ConvertToStandardType FreeImage_ConvertToStandardType;
507     da_FreeImage_ConvertToType FreeImage_ConvertToType;
508     da_FreeImage_ToneMapping FreeImage_ToneMapping;
509     da_FreeImage_TmoDrago03 FreeImage_TmoDrago03;
510     da_FreeImage_TmoReinhard05 FreeImage_TmoReinhard05;
511     da_FreeImage_TmoReinhard05Ex FreeImage_TmoReinhard05Ex;
512     da_FreeImage_TmoFattal02 FreeImage_TmoFattal02;
513     da_FreeImage_ZLibCompress FreeImage_ZLibCompress;
514     da_FreeImage_ZLibUncompress FreeImage_ZLibUncompress;
515     da_FreeImage_ZLibGZip FreeImage_ZLibGZip;
516     da_FreeImage_ZLibGUnzip FreeImage_ZLibGUnzip;
517     da_FreeImage_ZLibCRC32 FreeImage_ZLibCRC32;
518     da_FreeImage_CreateTag FreeImage_CreateTag;
519     da_FreeImage_DeleteTag FreeImage_DeleteTag;
520     da_FreeImage_CloneTag FreeImage_CloneTag;
521     da_FreeImage_GetTagKey FreeImage_GetTagKey;
522     da_FreeImage_GetTagDescription FreeImage_GetTagDescription;
523     da_FreeImage_GetTagID FreeImage_GetTagID;
524     da_FreeImage_GetTagType FreeImage_GetTagType;
525     da_FreeImage_GetTagCount FreeImage_GetTagCount;
526     da_FreeImage_GetTagLength FreeImage_GetTagLength;
527     da_FreeImage_GetTagValue FreeImage_GetTagValue;
528     da_FreeImage_SetTagKey FreeImage_SetTagKey;
529     da_FreeImage_SetTagDescription FreeImage_SetTagDescription;
530     da_FreeImage_SetTagID FreeImage_SetTagID;
531     da_FreeImage_SetTagType FreeImage_SetTagType;
532     da_FreeImage_SetTagCount FreeImage_SetTagCount;
533     da_FreeImage_SetTagLength FreeImage_SetTagLength;
534     da_FreeImage_SetTagValue FreeImage_SetTagValue;
535     da_FreeImage_FindFirstMetadata FreeImage_FindFirstMetadata;
536     da_FreeImage_FindNextMetadata FreeImage_FindNextMetadata;
537     da_FreeImage_FindCloseMetadata FreeImage_FindCloseMetadata;
538     da_FreeImage_SetMetadata FreeImage_SetMetadata;
539     da_FreeImage_GetMetadata FreeImage_GetMetadata;
540     da_FreeImage_SetMetadataKeyValue FreeImage_SetMetadataKeyValue;
541     da_FreeImage_GetMetadataCount FreeImage_GetMetadataCount;
542     da_FreeImage_CloneMetadata FreeImage_CloneMetadata;
543     da_FreeImage_TagToString FreeImage_TagToString;
544     da_FreeImage_JPEGTransform FreeImage_JPEGTransform;
545     da_FreeImage_JPEGTransformU FreeImage_JPEGTransformU;
546     da_FreeImage_JPEGCrop FreeImage_JPEGCrop;
547     da_FreeImage_JPEGCropU FreeImage_JPEGCropU;
548     da_FreeImage_JPEGTransformFromHandle FreeImage_JPEGTransformFromHandle;
549     da_FreeImage_JPEGTransformCombined FreeImage_JPEGTransformCombined;
550     da_FreeImage_JPEGTransformCombinedU FreeImage_JPEGTransformCombinedU;
551     da_FreeImage_JPEGTransformCombinedFromMemory FreeImage_JPEGTransformCombinedFromMemory;
552     da_FreeImage_RotateClassic FreeImage_RotateClassic;
553     da_FreeImage_Rotate FreeImage_Rotate;
554     da_FreeImage_RotateEx FreeImage_RotateEx;
555     da_FreeImage_FlipHorizontal FreeImage_FlipHorizontal;
556     da_FreeImage_FlipVertical FreeImage_FlipVertical;
557     da_FreeImage_Rescale FreeImage_Rescale;
558     da_FreeImage_MakeThumbnail FreeImage_MakeThumbnail;
559     da_FreeImage_RescaleRect FreeImage_RescaleRect;
560     da_FreeImage_AdjustCurve FreeImage_AdjustCurve;
561     da_FreeImage_AdjustGamma FreeImage_AdjustGamma;
562     da_FreeImage_AdjustBrightness FreeImage_AdjustBrightness;
563     da_FreeImage_AdjustContrast FreeImage_AdjustContrast;
564     da_FreeImage_Invert FreeImage_Invert;
565     da_FreeImage_GetHistogram FreeImage_GetHistogram;
566     da_FreeImage_GetAdjustColorsLookupTable FreeImage_GetAdjustColorsLookupTable;
567     da_FreeImage_AdjustColors FreeImage_AdjustColors;
568     da_FreeImage_ApplyColorMapping FreeImage_ApplyColorMapping;
569     da_FreeImage_SwapColors FreeImage_SwapColors;
570     da_FreeImage_ApplyPaletteIndexMapping FreeImage_ApplyPaletteIndexMapping;
571     da_FreeImage_SwapPaletteIndices FreeImage_SwapPaletteIndices;
572     da_FreeImage_GetChannel FreeImage_GetChannel;
573     da_FreeImage_SetChannel FreeImage_SetChannel;
574     da_FreeImage_GetComplexChannel FreeImage_GetComplexChannel;
575     da_FreeImage_SetComplexChannel FreeImage_SetComplexChannel;
576     da_FreeImage_Copy FreeImage_Copy;
577     da_FreeImage_Paste FreeImage_Paste;
578     da_FreeImage_CreateView FreeImage_CreateView;
579     da_FreeImage_Composite FreeImage_Composite;
580     da_FreeImage_PreMultiplyWithAlpha FreeImage_PreMultiplyWithAlpha;
581     da_FreeImage_FillBackground FreeImage_FillBackground;
582     da_FreeImage_EnlargeCanvas FreeImage_EnlargeCanvas;
583     da_FreeImage_AllocateEx FreeImage_AllocateEx;
584     da_FreeImage_AllocateExT FreeImage_AllocateExT;
585     da_FreeImage_MultigridPoissonSolver FreeImage_MultigridPoissonSolver;
586 }
587 
588 package:
589     void loadFuncs(SharedLibLoader loader)
590     {
591         with(loader)
592         {
593             bindFunc_stdcall(FreeImage_Initialise, "FreeImage_Initialise");
594             bindFunc_stdcall(FreeImage_DeInitialise, "FreeImage_DeInitialise");
595             bindFunc_stdcall(FreeImage_GetVersion, "FreeImage_GetVersion");
596             bindFunc_stdcall(FreeImage_GetCopyrightMessage, "FreeImage_GetCopyrightMessage");
597             bindFunc_stdcall(FreeImage_SetOutputMessageStdCall, "FreeImage_SetOutputMessageStdCall");
598             bindFunc_stdcall(FreeImage_SetOutputMessage, "FreeImage_SetOutputMessage");
599 
600             // This one isn't mangled like the rest, likely because of the variable args.
601             bindFunc(cast(void**)&FreeImage_OutputMessageProc, "FreeImage_OutputMessageProc");
602 
603             bindFunc_stdcall(FreeImage_Allocate, "FreeImage_Allocate");
604             bindFunc_stdcall(FreeImage_AllocateT, "FreeImage_AllocateT");
605             bindFunc_stdcall(FreeImage_Clone, "FreeImage_Clone");
606             bindFunc_stdcall(FreeImage_Unload, "FreeImage_Unload");
607             bindFunc_stdcall(FreeImage_HasPixels, "FreeImage_HasPixels");
608             bindFunc_stdcall(FreeImage_Load, "FreeImage_Load");
609             bindFunc_stdcall(FreeImage_LoadU, "FreeImage_LoadU");
610             bindFunc_stdcall(FreeImage_LoadFromHandle, "FreeImage_LoadFromHandle");
611             bindFunc_stdcall(FreeImage_Save, "FreeImage_Save");
612             bindFunc_stdcall(FreeImage_SaveU, "FreeImage_SaveU");
613             bindFunc_stdcall(FreeImage_SaveToHandle, "FreeImage_SaveToHandle");
614             bindFunc_stdcall(FreeImage_OpenMemory, "FreeImage_OpenMemory");
615             bindFunc_stdcall(FreeImage_CloseMemory, "FreeImage_CloseMemory");
616             bindFunc_stdcall(FreeImage_LoadFromMemory, "FreeImage_LoadFromMemory");
617             bindFunc_stdcall(FreeImage_SaveToMemory, "FreeImage_SaveToMemory");
618             bindFunc_stdcall(FreeImage_TellMemory, "FreeImage_TellMemory");
619             bindFunc_stdcall(FreeImage_SeekMemory, "FreeImage_SeekMemory");
620             bindFunc_stdcall(FreeImage_AcquireMemory, "FreeImage_AcquireMemory");
621             bindFunc_stdcall(FreeImage_ReadMemory, "FreeImage_ReadMemory");
622             bindFunc_stdcall(FreeImage_WriteMemory, "FreeImage_WriteMemory");
623             bindFunc_stdcall(FreeImage_LoadMultiBitmapFromMemory, "FreeImage_LoadMultiBitmapFromMemory");
624             bindFunc_stdcall(FreeImage_SaveMultiBitmapToMemory, "FreeImage_SaveMultiBitmapToMemory");
625             bindFunc_stdcall(FreeImage_RegisterLocalPlugin, "FreeImage_RegisterLocalPlugin");
626 
627             static if (Derelict_OS_Windows)
628                 bindFunc_stdcall(FreeImage_RegisterExternalPlugin, "FreeImage_RegisterExternalPlugin");
629 
630             bindFunc_stdcall(FreeImage_GetFIFCount, "FreeImage_GetFIFCount");
631             bindFunc_stdcall(FreeImage_SetPluginEnabled, "FreeImage_SetPluginEnabled");
632             bindFunc_stdcall(FreeImage_IsPluginEnabled, "FreeImage_IsPluginEnabled");
633             bindFunc_stdcall(FreeImage_GetFIFFromFormat, "FreeImage_GetFIFFromFormat");
634             bindFunc_stdcall(FreeImage_GetFIFFromMime, "FreeImage_GetFIFFromMime");
635             bindFunc_stdcall(FreeImage_GetFormatFromFIF, "FreeImage_GetFormatFromFIF");
636             bindFunc_stdcall(FreeImage_GetFIFExtensionList, "FreeImage_GetFIFExtensionList");
637             bindFunc_stdcall(FreeImage_GetFIFDescription, "FreeImage_GetFIFDescription");
638             bindFunc_stdcall(FreeImage_GetFIFRegExpr, "FreeImage_GetFIFRegExpr");
639             bindFunc_stdcall(FreeImage_GetFIFMimeType, "FreeImage_GetFIFMimeType");
640             bindFunc_stdcall(FreeImage_GetFIFFromFilename, "FreeImage_GetFIFFromFilename");
641             bindFunc_stdcall(FreeImage_GetFIFFromFilenameU, "FreeImage_GetFIFFromFilenameU");
642             bindFunc_stdcall(FreeImage_FIFSupportsReading, "FreeImage_FIFSupportsReading");
643             bindFunc_stdcall(FreeImage_FIFSupportsWriting, "FreeImage_FIFSupportsWriting");
644             bindFunc_stdcall(FreeImage_FIFSupportsExportBPP, "FreeImage_FIFSupportsExportBPP");
645             bindFunc_stdcall(FreeImage_FIFSupportsExportType, "FreeImage_FIFSupportsExportType");
646             bindFunc_stdcall(FreeImage_FIFSupportsICCProfiles, "FreeImage_FIFSupportsICCProfiles");
647             bindFunc_stdcall(FreeImage_FIFSupportsNoPixels, "FreeImage_FIFSupportsNoPixels");
648             bindFunc_stdcall(FreeImage_OpenMultiBitmap, "FreeImage_OpenMultiBitmap");
649             bindFunc_stdcall(FreeImage_OpenMultiBitmapFromHandle, "FreeImage_OpenMultiBitmapFromHandle");
650             bindFunc_stdcall(FreeImage_SaveMultiBitmapToHandle, "FreeImage_SaveMultiBitmapToHandle");
651             bindFunc_stdcall(FreeImage_CloseMultiBitmap, "FreeImage_CloseMultiBitmap");
652             bindFunc_stdcall(FreeImage_GetPageCount, "FreeImage_GetPageCount");
653             bindFunc_stdcall(FreeImage_AppendPage, "FreeImage_AppendPage");
654             bindFunc_stdcall(FreeImage_InsertPage, "FreeImage_InsertPage");
655             bindFunc_stdcall(FreeImage_DeletePage, "FreeImage_DeletePage");
656             bindFunc_stdcall(FreeImage_LockPage, "FreeImage_LockPage");
657             bindFunc_stdcall(FreeImage_UnlockPage, "FreeImage_UnlockPage");
658             bindFunc_stdcall(FreeImage_MovePage, "FreeImage_MovePage");
659             bindFunc_stdcall(FreeImage_GetLockedPageNumbers, "FreeImage_GetLockedPageNumbers");
660             bindFunc_stdcall(FreeImage_GetFileType, "FreeImage_GetFileType");
661             bindFunc_stdcall(FreeImage_GetFileTypeU, "FreeImage_GetFileTypeU");
662             bindFunc_stdcall(FreeImage_GetFileTypeFromHandle, "FreeImage_GetFileTypeFromHandle");
663             bindFunc_stdcall(FreeImage_GetFileTypeFromMemory, "FreeImage_GetFileTypeFromMemory");
664             bindFunc_stdcall(FreeImage_GetImageType, "FreeImage_GetImageType");
665             bindFunc_stdcall(FreeImage_IsLittleEndian, "FreeImage_IsLittleEndian");
666             bindFunc_stdcall(FreeImage_LookupX11Color, "FreeImage_LookupX11Color");
667             bindFunc_stdcall(FreeImage_LookupSVGColor, "FreeImage_LookupSVGColor");
668             bindFunc_stdcall(FreeImage_GetBits, "FreeImage_GetBits");
669             bindFunc_stdcall(FreeImage_GetScanLine, "FreeImage_GetScanLine");
670             bindFunc_stdcall(FreeImage_GetPixelIndex, "FreeImage_GetPixelIndex");
671             bindFunc_stdcall(FreeImage_GetPixelColor, "FreeImage_GetPixelColor");
672             bindFunc_stdcall(FreeImage_SetPixelIndex, "FreeImage_SetPixelIndex");
673             bindFunc_stdcall(FreeImage_SetPixelColor, "FreeImage_SetPixelColor");
674             bindFunc_stdcall(FreeImage_GetColorsUsed, "FreeImage_GetColorsUsed");
675             bindFunc_stdcall(FreeImage_GetBPP, "FreeImage_GetBPP");
676             bindFunc_stdcall(FreeImage_GetWidth, "FreeImage_GetWidth");
677             bindFunc_stdcall(FreeImage_GetHeight, "FreeImage_GetHeight");
678             bindFunc_stdcall(FreeImage_GetLine, "FreeImage_GetLine");
679             bindFunc_stdcall(FreeImage_GetPitch, "FreeImage_GetPitch");
680             bindFunc_stdcall(FreeImage_GetDIBSize, "FreeImage_GetDIBSize");
681             bindFunc_stdcall(FreeImage_GetMemorySize, "FreeImage_GetMemorySize");
682             bindFunc_stdcall(FreeImage_GetPalette, "FreeImage_GetPalette");
683             bindFunc_stdcall(FreeImage_GetDotsPerMeterX, "FreeImage_GetDotsPerMeterX");
684             bindFunc_stdcall(FreeImage_GetDotsPerMeterY, "FreeImage_GetDotsPerMeterY");
685             bindFunc_stdcall(FreeImage_SetDotsPerMeterX, "FreeImage_SetDotsPerMeterX");
686             bindFunc_stdcall(FreeImage_SetDotsPerMeterY, "FreeImage_SetDotsPerMeterY");
687             bindFunc_stdcall(FreeImage_GetInfoHeader, "FreeImage_GetInfoHeader");
688             bindFunc_stdcall(FreeImage_GetInfo, "FreeImage_GetInfo");
689             bindFunc_stdcall(FreeImage_GetColorType, "FreeImage_GetColorType");
690             bindFunc_stdcall(FreeImage_GetRedMask, "FreeImage_GetRedMask");
691             bindFunc_stdcall(FreeImage_GetGreenMask, "FreeImage_GetGreenMask");
692             bindFunc_stdcall(FreeImage_GetBlueMask, "FreeImage_GetBlueMask");
693             bindFunc_stdcall(FreeImage_GetTransparencyCount, "FreeImage_GetTransparencyCount");
694             bindFunc_stdcall(FreeImage_GetTransparencyTable, "FreeImage_GetTransparencyTable");
695             bindFunc_stdcall(FreeImage_SetTransparent, "FreeImage_SetTransparent");
696             bindFunc_stdcall(FreeImage_SetTransparencyTable, "FreeImage_SetTransparencyTable");
697             bindFunc_stdcall(FreeImage_IsTransparent, "FreeImage_IsTransparent");
698             bindFunc_stdcall(FreeImage_SetTransparentIndex, "FreeImage_SetTransparentIndex");
699             bindFunc_stdcall(FreeImage_GetTransparentIndex, "FreeImage_GetTransparentIndex");
700             bindFunc_stdcall(FreeImage_HasBackgroundColor, "FreeImage_HasBackgroundColor");
701             bindFunc_stdcall(FreeImage_GetBackgroundColor, "FreeImage_GetBackgroundColor");
702             bindFunc_stdcall(FreeImage_SetBackgroundColor, "FreeImage_SetBackgroundColor");
703             bindFunc_stdcall(FreeImage_GetThumbnail, "FreeImage_GetThumbnail");
704             bindFunc_stdcall(FreeImage_SetThumbnail, "FreeImage_SetThumbnail");
705             bindFunc_stdcall(FreeImage_GetICCProfile, "FreeImage_GetICCProfile");
706             bindFunc_stdcall(FreeImage_CreateICCProfile, "FreeImage_CreateICCProfile");
707             bindFunc_stdcall(FreeImage_DestroyICCProfile, "FreeImage_DestroyICCProfile");
708             bindFunc_stdcall(FreeImage_ConvertLine1To4, "FreeImage_ConvertLine1To4");
709             bindFunc_stdcall(FreeImage_ConvertLine8To4, "FreeImage_ConvertLine8To4");
710             bindFunc_stdcall(FreeImage_ConvertLine16To4_555, "FreeImage_ConvertLine16To4_555");
711             bindFunc_stdcall(FreeImage_ConvertLine16To4_565, "FreeImage_ConvertLine16To4_565");
712             bindFunc_stdcall(FreeImage_ConvertLine24To4, "FreeImage_ConvertLine24To4");
713             bindFunc_stdcall(FreeImage_ConvertLine32To4, "FreeImage_ConvertLine32To4");
714             bindFunc_stdcall(FreeImage_ConvertLine1To8, "FreeImage_ConvertLine1To8");
715             bindFunc_stdcall(FreeImage_ConvertLine4To8, "FreeImage_ConvertLine4To8");
716             bindFunc_stdcall(FreeImage_ConvertLine16To8_555, "FreeImage_ConvertLine16To8_555");
717             bindFunc_stdcall(FreeImage_ConvertLine16To8_565, "FreeImage_ConvertLine16To8_565");
718             bindFunc_stdcall(FreeImage_ConvertLine24To8, "FreeImage_ConvertLine24To8");
719             bindFunc_stdcall(FreeImage_ConvertLine32To8, "FreeImage_ConvertLine32To8");
720             bindFunc_stdcall(FreeImage_ConvertLine1To16_555, "FreeImage_ConvertLine1To16_555");
721             bindFunc_stdcall(FreeImage_ConvertLine4To16_555, "FreeImage_ConvertLine4To16_555");
722             bindFunc_stdcall(FreeImage_ConvertLine8To16_555, "FreeImage_ConvertLine8To16_555");
723             bindFunc_stdcall(FreeImage_ConvertLine16_565_To16_555, "FreeImage_ConvertLine16_565_To16_555");
724             bindFunc_stdcall(FreeImage_ConvertLine24To16_555, "FreeImage_ConvertLine24To16_555");
725             bindFunc_stdcall(FreeImage_ConvertLine32To16_555, "FreeImage_ConvertLine32To16_555");
726             bindFunc_stdcall(FreeImage_ConvertLine1To16_565, "FreeImage_ConvertLine1To16_565");
727             bindFunc_stdcall(FreeImage_ConvertLine4To16_565, "FreeImage_ConvertLine4To16_565");
728             bindFunc_stdcall(FreeImage_ConvertLine8To16_565, "FreeImage_ConvertLine8To16_565");
729             bindFunc_stdcall(FreeImage_ConvertLine16_555_To16_565, "FreeImage_ConvertLine16_555_To16_565");
730             bindFunc_stdcall(FreeImage_ConvertLine24To16_565, "FreeImage_ConvertLine24To16_565");
731             bindFunc_stdcall(FreeImage_ConvertLine32To16_565, "FreeImage_ConvertLine32To16_565");
732             bindFunc_stdcall(FreeImage_ConvertLine1To24, "FreeImage_ConvertLine1To24");
733             bindFunc_stdcall(FreeImage_ConvertLine4To24, "FreeImage_ConvertLine4To24");
734             bindFunc_stdcall(FreeImage_ConvertLine8To24, "FreeImage_ConvertLine8To24");
735             bindFunc_stdcall(FreeImage_ConvertLine16To24_555, "FreeImage_ConvertLine16To24_555");
736             bindFunc_stdcall(FreeImage_ConvertLine16To24_565, "FreeImage_ConvertLine16To24_565");
737             bindFunc_stdcall(FreeImage_ConvertLine32To24, "FreeImage_ConvertLine32To24");
738             bindFunc_stdcall(FreeImage_ConvertLine1To32, "FreeImage_ConvertLine1To32");
739             bindFunc_stdcall(FreeImage_ConvertLine4To32, "FreeImage_ConvertLine4To32");
740             bindFunc_stdcall(FreeImage_ConvertLine8To32, "FreeImage_ConvertLine8To32");
741             bindFunc_stdcall(FreeImage_ConvertLine16To32_555, "FreeImage_ConvertLine16To32_555");
742             bindFunc_stdcall(FreeImage_ConvertLine16To32_565, "FreeImage_ConvertLine16To32_565");
743             bindFunc_stdcall(FreeImage_ConvertLine24To32, "FreeImage_ConvertLine24To32");
744             bindFunc_stdcall(FreeImage_ConvertTo4Bits, "FreeImage_ConvertTo4Bits");
745             bindFunc_stdcall(FreeImage_ConvertTo8Bits, "FreeImage_ConvertTo8Bits");
746             bindFunc_stdcall(FreeImage_ConvertToGreyscale, "FreeImage_ConvertToGreyscale");
747             bindFunc_stdcall(FreeImage_ConvertTo16Bits555, "FreeImage_ConvertTo16Bits555");
748             bindFunc_stdcall(FreeImage_ConvertTo16Bits565, "FreeImage_ConvertTo16Bits565");
749             bindFunc_stdcall(FreeImage_ConvertTo24Bits, "FreeImage_ConvertTo24Bits");
750             bindFunc_stdcall(FreeImage_ConvertTo32Bits, "FreeImage_ConvertTo32Bits");
751             bindFunc_stdcall(FreeImage_ColorQuantize, "FreeImage_ColorQuantize");
752             bindFunc_stdcall(FreeImage_ColorQuantizeEx, "FreeImage_ColorQuantizeEx");
753             bindFunc_stdcall(FreeImage_Threshold, "FreeImage_Threshold");
754             bindFunc_stdcall(FreeImage_Dither, "FreeImage_Dither");
755             bindFunc_stdcall(FreeImage_ConvertFromRawBits, "FreeImage_ConvertFromRawBits");
756             bindFunc_stdcall(FreeImage_ConvertFromRawBitsEx, "FreeImage_ConvertFromRawBitsEx");
757             bindFunc_stdcall(FreeImage_ConvertToRawBits, "FreeImage_ConvertToRawBits");
758             bindFunc_stdcall(FreeImage_ConvertToFloat, "FreeImage_ConvertToFloat");
759             bindFunc_stdcall(FreeImage_ConvertToRGBF, "FreeImage_ConvertToRGBF");
760             bindFunc_stdcall(FreeImage_ConvertToRGBAF, "FreeImage_ConvertToRGBAF");
761             bindFunc_stdcall(FreeImage_ConvertToUINT16, "FreeImage_ConvertToUINT16");
762             bindFunc_stdcall(FreeImage_ConvertToRGB16, "FreeImage_ConvertToRGB16");
763             bindFunc_stdcall(FreeImage_ConvertToRGBA16, "FreeImage_ConvertToRGBA16");
764             bindFunc_stdcall(FreeImage_ConvertToStandardType, "FreeImage_ConvertToStandardType");
765             bindFunc_stdcall(FreeImage_ConvertToType, "FreeImage_ConvertToType");
766             bindFunc_stdcall(FreeImage_ToneMapping, "FreeImage_ToneMapping");
767             bindFunc_stdcall(FreeImage_TmoDrago03, "FreeImage_TmoDrago03");
768             bindFunc_stdcall(FreeImage_TmoReinhard05, "FreeImage_TmoReinhard05");
769             bindFunc_stdcall(FreeImage_TmoReinhard05Ex, "FreeImage_TmoReinhard05Ex");
770             bindFunc_stdcall(FreeImage_TmoFattal02, "FreeImage_TmoFattal02");
771             bindFunc_stdcall(FreeImage_ZLibCompress, "FreeImage_ZLibCompress");
772             bindFunc_stdcall(FreeImage_ZLibUncompress, "FreeImage_ZLibUncompress");
773             bindFunc_stdcall(FreeImage_ZLibGZip, "FreeImage_ZLibGZip");
774             bindFunc_stdcall(FreeImage_ZLibGUnzip, "FreeImage_ZLibGUnzip");
775             bindFunc_stdcall(FreeImage_ZLibCRC32, "FreeImage_ZLibCRC32");
776 
777             bindFunc_stdcall(FreeImage_CreateTag, "FreeImage_CreateTag");
778             bindFunc_stdcall(FreeImage_DeleteTag, "FreeImage_DeleteTag");
779             bindFunc_stdcall(FreeImage_CloneTag, "FreeImage_CloneTag");
780             bindFunc_stdcall(FreeImage_GetTagKey, "FreeImage_GetTagKey");
781             bindFunc_stdcall(FreeImage_GetTagDescription, "FreeImage_GetTagDescription");
782             bindFunc_stdcall(FreeImage_GetTagID, "FreeImage_GetTagID");
783             bindFunc_stdcall(FreeImage_GetTagType, "FreeImage_GetTagType");
784             bindFunc_stdcall(FreeImage_GetTagCount, "FreeImage_GetTagCount");
785             bindFunc_stdcall(FreeImage_GetTagLength, "FreeImage_GetTagLength");
786             bindFunc_stdcall(FreeImage_GetTagValue, "FreeImage_GetTagValue");
787             bindFunc_stdcall(FreeImage_SetTagKey, "FreeImage_SetTagKey");
788             bindFunc_stdcall(FreeImage_SetTagDescription, "FreeImage_SetTagDescription");
789             bindFunc_stdcall(FreeImage_SetTagID, "FreeImage_SetTagID");
790             bindFunc_stdcall(FreeImage_SetTagType, "FreeImage_SetTagType");
791             bindFunc_stdcall(FreeImage_SetTagCount, "FreeImage_SetTagCount");
792             bindFunc_stdcall(FreeImage_SetTagLength, "FreeImage_SetTagLength");
793             bindFunc_stdcall(FreeImage_SetTagValue, "FreeImage_SetTagValue");
794             bindFunc_stdcall(FreeImage_FindFirstMetadata, "FreeImage_FindFirstMetadata");
795             bindFunc_stdcall(FreeImage_FindNextMetadata, "FreeImage_FindNextMetadata");
796             bindFunc_stdcall(FreeImage_FindCloseMetadata, "FreeImage_FindCloseMetadata");
797             bindFunc_stdcall(FreeImage_SetMetadata, "FreeImage_SetMetadata");
798             bindFunc_stdcall(FreeImage_GetMetadata, "FreeImage_GetMetadata");
799             bindFunc_stdcall(FreeImage_SetMetadataKeyValue, "FreeImage_SetMetadataKeyValue");
800             bindFunc_stdcall(FreeImage_GetMetadataCount, "FreeImage_GetMetadataCount");
801             bindFunc_stdcall(FreeImage_CloneMetadata, "FreeImage_CloneMetadata");
802             bindFunc_stdcall(FreeImage_TagToString, "FreeImage_TagToString");
803             bindFunc_stdcall(FreeImage_JPEGTransform, "FreeImage_JPEGTransform");
804             bindFunc_stdcall(FreeImage_JPEGTransformU, "FreeImage_JPEGTransformU");
805             bindFunc_stdcall(FreeImage_JPEGCrop, "FreeImage_JPEGCrop");
806             bindFunc_stdcall(FreeImage_JPEGCropU, "FreeImage_JPEGCropU");
807             bindFunc_stdcall(FreeImage_JPEGTransformFromHandle, "FreeImage_JPEGTransformFromHandle");
808             bindFunc_stdcall(FreeImage_JPEGTransformCombined, "FreeImage_JPEGTransformCombined");
809             bindFunc_stdcall(FreeImage_JPEGTransformCombinedU, "FreeImage_JPEGTransformCombinedU");
810             bindFunc_stdcall(FreeImage_JPEGTransformCombinedFromMemory, "FreeImage_JPEGTransformCombinedFromMemory");
811             bindFunc_stdcall(FreeImage_RotateClassic, "FreeImage_RotateClassic");
812             bindFunc_stdcall(FreeImage_Rotate, "FreeImage_Rotate");
813             bindFunc_stdcall(FreeImage_RotateEx, "FreeImage_RotateEx");
814             bindFunc_stdcall(FreeImage_FlipHorizontal, "FreeImage_FlipHorizontal");
815             bindFunc_stdcall(FreeImage_FlipVertical, "FreeImage_FlipVertical");
816             bindFunc_stdcall(FreeImage_Rescale, "FreeImage_Rescale");
817             bindFunc_stdcall(FreeImage_MakeThumbnail, "FreeImage_MakeThumbnail");
818             bindFunc_stdcall(FreeImage_RescaleRect, "FreeImage_RescaleRect");
819             bindFunc_stdcall(FreeImage_AdjustCurve, "FreeImage_AdjustCurve");
820             bindFunc_stdcall(FreeImage_AdjustGamma, "FreeImage_AdjustGamma");
821             bindFunc_stdcall(FreeImage_AdjustBrightness, "FreeImage_AdjustBrightness");
822             bindFunc_stdcall(FreeImage_AdjustContrast, "FreeImage_AdjustContrast");
823             bindFunc_stdcall(FreeImage_Invert, "FreeImage_Invert");
824             bindFunc_stdcall(FreeImage_GetHistogram, "FreeImage_GetHistogram");
825             bindFunc_stdcall(FreeImage_GetAdjustColorsLookupTable, "FreeImage_GetAdjustColorsLookupTable");
826             bindFunc_stdcall(FreeImage_AdjustColors, "FreeImage_AdjustColors");
827             bindFunc_stdcall(FreeImage_ApplyColorMapping, "FreeImage_ApplyColorMapping");
828             bindFunc_stdcall(FreeImage_SwapColors, "FreeImage_SwapColors");
829             bindFunc_stdcall(FreeImage_ApplyPaletteIndexMapping, "FreeImage_ApplyPaletteIndexMapping");
830             bindFunc_stdcall(FreeImage_SwapPaletteIndices, "FreeImage_SwapPaletteIndices");
831             bindFunc_stdcall(FreeImage_GetChannel, "FreeImage_GetChannel");
832             bindFunc_stdcall(FreeImage_SetChannel, "FreeImage_SetChannel");
833             bindFunc_stdcall(FreeImage_GetComplexChannel, "FreeImage_GetComplexChannel");
834             bindFunc_stdcall(FreeImage_SetComplexChannel, "FreeImage_SetComplexChannel");
835             bindFunc_stdcall(FreeImage_Copy, "FreeImage_Copy");
836             bindFunc_stdcall(FreeImage_Paste, "FreeImage_Paste");
837             bindFunc_stdcall(FreeImage_CreateView, "FreeImage_CreateView");
838             bindFunc_stdcall(FreeImage_Composite, "FreeImage_Composite");
839             bindFunc_stdcall(FreeImage_PreMultiplyWithAlpha, "FreeImage_PreMultiplyWithAlpha");
840             bindFunc_stdcall(FreeImage_FillBackground, "FreeImage_FillBackground");
841             bindFunc_stdcall(FreeImage_EnlargeCanvas, "FreeImage_EnlargeCanvas");
842             bindFunc_stdcall(FreeImage_AllocateEx, "FreeImage_AllocateEx");
843             bindFunc_stdcall(FreeImage_AllocateExT, "FreeImage_AllocateExT");
844             bindFunc_stdcall(FreeImage_MultigridPoissonSolver, "FreeImage_MultigridPoissonSolver");
845         }
846     }