1 
2 //          Copyright 2019 - 2021 Michael D. Parker
3 // Distributed under the Boost Software License, Version 1.0.
4 //    (See accompanying file LICENSE_1_0.txt or copy at
5 //          http://www.boost.org/LICENSE_1_0.txt)
6 
7 module bindbc.freeimage.bindstatic;
8 
9 version(BindFI_Static):
10 
11 import core.stdc.config,
12        core.stdc.stddef;
13 import bindbc.freeimage.types;
14 
15 extern(System) @nogc nothrow {
16 	void FreeImage_Initialise(BOOL load_local_plugins_only = FALSE);
17 	void FreeImage_DeInitialise();
18 	const(char)* FreeImage_GetVersion();
19 	const(char)* FreeImage_GetCopyrightMessage();
20 	void FreeImage_SetOutputMessageStdCall(FreeImage_OutputMessageFunctionStdCall);
21 	void FreeImage_SetOutputMessage(FreeImage_OutputMessageFunction);
22 	void FreeImage_OutputMessageProc(int,const(char)*, ...);
23 	FIBITMAP* FreeImage_Allocate(int,int,int,uint red_mask = 0,uint green_mask = 0,uint blue_mask = 0);
24 	FIBITMAP* FreeImage_AllocateT(FREE_IMAGE_TYPE type,int,int,int = 8,uint red_mask = 0,uint green_mask = 0,uint blue_mask = 0);
25 	FIBITMAP* FreeImage_Clone(FIBITMAP*);
26 	void FreeImage_Unload(FIBITMAP*);
27 	BOOL FreeImage_HasPixels(FIBITMAP*);
28 	FIBITMAP* FreeImage_Load(FREE_IMAGE_FORMAT,const(char)*,int flags = 0);
29 	FIBITMAP* FreeImage_LoadU(FREE_IMAGE_FORMAT,const(wchar_t)*,int flags = 0);
30 	FIBITMAP* FreeImage_LoadFromHandle(FREE_IMAGE_FORMAT,FreeImageIO*, fi_handle,int flags = 0);
31 	BOOL FreeImage_Save(FREE_IMAGE_FORMAT,FIBITMAP*,const(char)*,int flags = 0);
32 	BOOL FreeImage_SaveU(FREE_IMAGE_FORMAT,FIBITMAP*,const(wchar_t)*,int flags = 0);
33 	BOOL FreeImage_SaveToHandle(FREE_IMAGE_FORMAT,FIBITMAP*,FreeImageIO*, fi_handle,int flags = 0);
34 	FIMEMORY* FreeImage_OpenMemory(BYTE* data = null,DWORD size_in_bytes = 0);
35 	void FreeImage_CloseMemory(FIMEMORY* stream);
36 	FIBITMAP* FreeImage_LoadFromMemory(FREE_IMAGE_FORMAT,FIMEMORY*,int flags = 0);
37 	BOOL FreeImage_SaveToMemory(FREE_IMAGE_FORMAT,FIBITMAP*,FIMEMORY*,int flags = 0);
38 	c_long FreeImage_TellMemory(FIMEMORY*);
39 	BOOL FreeImage_SeekMemory(FIMEMORY*, c_long,int);
40 	BOOL FreeImage_AcquireMemory(FIMEMORY*,BYTE**,DWORD*);
41 	uint FreeImage_ReadMemory(void*,uint,uint,FIMEMORY*);
42 	uint FreeImage_WriteMemory(const(void*),uint,uint,FIMEMORY*);
43 	FIMULTIBITMAP* FreeImage_LoadMultiBitmapFromMemory(FREE_IMAGE_FORMAT fif,FIMEMORY*,int flags = 0);
44 	BOOL FreeImage_SaveMultiBitmapToMemory(FREE_IMAGE_FORMAT, FIMULTIBITMAP* bitmap,FIMEMORY*,int flags);
45 	FREE_IMAGE_FORMAT FreeImage_RegisterLocalPlugin(FI_InitProc,const(char)* format = null,const(char)* description = null,const(char)* extension = null,const(char)* regexpr = null);
46 
47     version(Windows) {
48         FREE_IMAGE_FORMAT _FreeImage_RegisterExternalPlugin(const(char)*,const(char)* format = null,const(char)* description = null,const(char)* extension = null,const(char)* regexpr = null);
49     }
50 
51    int FreeImage_GetFIFCount();
52 	int FreeImage_SetPluginEnabled(FREE_IMAGE_FORMAT,BOOL);
53 	int FreeImage_IsPluginEnabled(FREE_IMAGE_FORMAT);
54 	FREE_IMAGE_FORMAT FreeImage_GetFIFFromFormat(const(char)*);
55 	FREE_IMAGE_FORMAT FreeImage_GetFIFFromMime(const(char)*);
56 	const(char)* FreeImage_GetFormatFromFIF(FREE_IMAGE_FORMAT);
57 	const(char)* FreeImage_GetFIFExtensionList(FREE_IMAGE_FORMAT);
58 	const(char)* FreeImage_GetFIFDescription(FREE_IMAGE_FORMAT);
59 	const(char)* FreeImage_GetFIFRegExpr(FREE_IMAGE_FORMAT);
60 	const(char)* FreeImage_GetFIFMimeType(FREE_IMAGE_FORMAT);
61 	FREE_IMAGE_FORMAT FreeImage_GetFIFFromFilename(const(char)*);
62 	FREE_IMAGE_FORMAT FreeImage_GetFIFFromFilenameU(const(wchar_t)*);
63 	BOOL FreeImage_FIFSupportsReading(FREE_IMAGE_FORMAT);
64 	BOOL FreeImage_FIFSupportsWriting(FREE_IMAGE_FORMAT);
65 	BOOL FreeImage_FIFSupportsExportBPP(FREE_IMAGE_FORMAT,int);
66 	BOOL FreeImage_FIFSupportsExportType(FREE_IMAGE_FORMAT,FREE_IMAGE_TYPE);
67 	BOOL FreeImage_FIFSupportsICCProfiles(FREE_IMAGE_FORMAT);
68 	BOOL FreeImage_FIFSupportsNoPixels(FREE_IMAGE_FORMAT);
69 	FIMULTIBITMAP* FreeImage_OpenMultiBitmap(FREE_IMAGE_FORMAT,const(char)*,BOOL,BOOL,BOOL keep_cache_in_memory = FALSE,int flags = 0);
70 	FIMULTIBITMAP* FreeImage_OpenMultiBitmapFromHandle(FREE_IMAGE_FORMAT,FreeImageIO*, fi_handle,int flags = 0);
71 	BOOL FreeImage_SaveMultiBitmapToHandle(FREE_IMAGE_FORMAT, FIMULTIBITMAP*,FreeImageIO*, fi_handle,int flags = 0);
72 	BOOL FreeImage_CloseMultiBitmap(FIMULTIBITMAP*,int flags = 0);
73 	int FreeImage_GetPageCount(FIMULTIBITMAP*);
74 	void FreeImage_AppendPage(FIMULTIBITMAP*,FIBITMAP*);
75 	void FreeImage_InsertPage(FIMULTIBITMAP*,int,FIBITMAP*);
76 	void FreeImage_DeletePage(FIMULTIBITMAP*,int);
77 	FIBITMAP* FreeImage_LockPage(FIMULTIBITMAP*,int);
78 	void FreeImage_UnlockPage(FIMULTIBITMAP*,FIBITMAP*,BOOL);
79 	BOOL FreeImage_MovePage(FIMULTIBITMAP*,int,int);
80 	BOOL FreeImage_GetLockedPageNumbers(FIMULTIBITMAP*,int*,int*);
81 	FREE_IMAGE_FORMAT FreeImage_GetFileType(const(char)*,int size = 0);
82 	FREE_IMAGE_FORMAT FreeImage_GetFileTypeU(const(wchar_t)*,int size = 0);
83 	FREE_IMAGE_FORMAT FreeImage_GetFileTypeFromHandle(FreeImageIO*, fi_handle,int size = 0);
84 	FREE_IMAGE_FORMAT FreeImage_GetFileTypeFromMemory(FIMEMORY*,int size = 0);
85 	FREE_IMAGE_TYPE FreeImage_GetImageType(FIBITMAP*);
86 	BOOL FreeImage_IsLittleEndian();
87 	BOOL FreeImage_LookupX11Color(const(char)* ,BYTE*,BYTE*,BYTE*);
88 	BOOL FreeImage_LookupSVGColor(const(char)* ,BYTE*,BYTE*,BYTE*);
89 	BYTE* FreeImage_GetBits(FIBITMAP*);
90 	BYTE* FreeImage_GetScanLine(FIBITMAP*,int scanline);
91 	BOOL FreeImage_GetPixelIndex(FIBITMAP*,uint,uint,BYTE*);
92 	BOOL FreeImage_GetPixelColor(FIBITMAP*,uint,uint, RGBQUAD*);
93 	BOOL FreeImage_SetPixelIndex(FIBITMAP*,uint,uint,BYTE*);
94 	BOOL FreeImage_SetPixelColor(FIBITMAP*,uint,uint, RGBQUAD*);
95 	uint FreeImage_GetColorsUsed(FIBITMAP*);
96 	uint FreeImage_GetBPP(FIBITMAP*);
97 	uint FreeImage_GetWidth(FIBITMAP*);
98 	uint FreeImage_GetHeight(FIBITMAP*);
99 	uint FreeImage_GetLine(FIBITMAP*);
100 	uint FreeImage_GetPitch(FIBITMAP*);
101 	uint FreeImage_GetDIBSize(FIBITMAP*);
102 	uint FreeImage_GetMemorySize(FIBITMAP*); // Added in 3.17.;
103 	RGBQUAD* FreeImage_GetPalette(FIBITMAP*);
104 	uint FreeImage_GetDotsPerMeterX(FIBITMAP*);
105 	uint FreeImage_GetDotsPerMeterY(FIBITMAP*);
106 	void FreeImage_SetDotsPerMeterX(FIBITMAP*,uint);
107 	void FreeImage_SetDotsPerMeterY(FIBITMAP*,uint);
108 	BITMAPINFOHEADER* FreeImage_GetInfoHeader(FIBITMAP*);
109 	BITMAPINFO* FreeImage_GetInfo(FIBITMAP*);
110 	FREE_IMAGE_COLOR_TYPE FreeImage_GetColorType(FIBITMAP*);
111 	uint FreeImage_GetRedMask(FIBITMAP*);
112 	uint FreeImage_GetGreenMask(FIBITMAP*);
113 	uint FreeImage_GetBlueMask(FIBITMAP*);
114 	uint FreeImage_GetTransparencyCount(FIBITMAP*);
115 	BYTE* FreeImage_GetTransparencyTable(FIBITMAP*);
116 	void FreeImage_SetTransparent(FIBITMAP*,BOOL);
117 	void FreeImage_SetTransparencyTable(FIBITMAP*,BYTE*,int);
118 	BOOL FreeImage_IsTransparent(FIBITMAP*);
119 	void FreeImage_SetTransparentIndex(FIBITMAP*,int);
120 	int FreeImage_GetTransparentIndex(FIBITMAP*);
121 	BOOL FreeImage_HasBackgroundColor(FIBITMAP*);
122 	BOOL FreeImage_GetBackgroundColor(FIBITMAP*,RGBQUAD*);
123 	BOOL FreeImage_SetBackgroundColor(FIBITMAP*,RGBQUAD*);
124 	FIBITMAP* FreeImage_GetThumbnail(FIBITMAP*);
125 	BOOL FreeImage_SetThumbnail(FIBITMAP*,FIBITMAP*);
126 	FIICCPROFILE* FreeImage_GetICCProfile(FIBITMAP*);
127 	FIICCPROFILE* FreeImage_CreateICCProfile(FIBITMAP*,void*,c_long);
128 	void FreeImage_DestroyICCProfile(FIBITMAP*);
129 	void FreeImage_ConvertLine1To4(BYTE*,BYTE*,int);
130 	void FreeImage_ConvertLine8To4(BYTE*,BYTE*,int,RGBQUAD*);
131 	void FreeImage_ConvertLine16To4_555(BYTE*,BYTE*,int);
132 	void FreeImage_ConvertLine16To4_565(BYTE*,BYTE*,int);
133 	void FreeImage_ConvertLine24To4(BYTE*,BYTE*,int);
134 	void FreeImage_ConvertLine32To4(BYTE*,BYTE*,int);
135 	void FreeImage_ConvertLine1To8(BYTE*,BYTE*,int);
136 	void FreeImage_ConvertLine4To8(BYTE*,BYTE*,int);
137 	void FreeImage_ConvertLine16To8_555(BYTE*,BYTE*,int);
138 	void FreeImage_ConvertLine16To8_565(BYTE*,BYTE*,int);
139 	void FreeImage_ConvertLine24To8(BYTE*,BYTE*,int);
140 	void FreeImage_ConvertLine32To8(BYTE*,BYTE*,int);
141 	void FreeImage_ConvertLine1To16_555(BYTE*,BYTE*,int,RGBQUAD*);
142 	void FreeImage_ConvertLine4To16_555(BYTE*,BYTE*,int,RGBQUAD*);
143 	void FreeImage_ConvertLine8To16_555(BYTE*,BYTE*,int,RGBQUAD*);
144 	void FreeImage_ConvertLine16_565_To16_555(BYTE*,BYTE*,int);
145 	void FreeImage_ConvertLine24To16_555(BYTE*,BYTE*,int);
146 	void FreeImage_ConvertLine32To16_555(BYTE*,BYTE*,int);
147 	void FreeImage_ConvertLine1To16_565(BYTE*,BYTE*,int,RGBQUAD*);
148 	void FreeImage_ConvertLine4To16_565(BYTE*,BYTE*,int,RGBQUAD*);
149 	void FreeImage_ConvertLine8To16_565(BYTE*,BYTE*,int,RGBQUAD*);
150 	void FreeImage_ConvertLine16_555_To16_565(BYTE*,BYTE*,int);
151 	void FreeImage_ConvertLine24To16_565(BYTE*,BYTE*,int);
152 	void FreeImage_ConvertLine32To16_565(BYTE*,BYTE*,int);
153 	void FreeImage_ConvertLine1To24(BYTE*,BYTE*,int,RGBQUAD*);
154 	void FreeImage_ConvertLine4To24(BYTE*,BYTE*,int,RGBQUAD*);
155 	void FreeImage_ConvertLine8To24(BYTE*,BYTE*,int,RGBQUAD*);
156 	void FreeImage_ConvertLine16To24_555(BYTE*,BYTE*,int);
157 	void FreeImage_ConvertLine16To24_565(BYTE*,BYTE*,int);
158 	void FreeImage_ConvertLine32To24(BYTE*,BYTE*,int);
159 	void FreeImage_ConvertLine1To32(BYTE*,BYTE*,int,RGBQUAD*);
160 	void FreeImage_ConvertLine4To32(BYTE*,BYTE*,int,RGBQUAD*);
161 	void FreeImage_ConvertLine8To32(BYTE*,BYTE*,int,RGBQUAD*);
162 	void FreeImage_ConvertLine16To32_555(BYTE*,BYTE*,int);
163 	void FreeImage_ConvertLine16To32_565(BYTE*,BYTE*,int);
164 	void FreeImage_ConvertLine24To32(BYTE*,BYTE*,int);
165 	FIBITMAP* FreeImage_ConvertTo4Bits(FIBITMAP*);
166 	FIBITMAP* FreeImage_ConvertTo8Bits(FIBITMAP*);
167 	FIBITMAP* FreeImage_ConvertToGreyscale(FIBITMAP*);
168 	FIBITMAP* FreeImage_ConvertTo16Bits555(FIBITMAP*);
169 	FIBITMAP* FreeImage_ConvertTo16Bits565(FIBITMAP*);
170 	FIBITMAP* FreeImage_ConvertTo24Bits(FIBITMAP*);
171 	FIBITMAP* FreeImage_ConvertTo32Bits(FIBITMAP*);
172 	FIBITMAP* FreeImage_ColorQuantize(FIBITMAP*,FREE_IMAGE_QUANTIZE);
173 	FIBITMAP* FreeImage_ColorQuantizeEx(FIBITMAP*,FREE_IMAGE_QUANTIZE quantize = FIQ_WUQUANT,int PaletteSize = 256,int ReserveSize = 0,RGBQUAD* ReservePalette = null);
174 	FIBITMAP* FreeImage_Threshold(FIBITMAP*,BYTE);
175 	FIBITMAP* FreeImage_Dither(FIBITMAP*,FREE_IMAGE_DITHER);
176 	FIBITMAP* FreeImage_ConvertFromRawBits(BYTE* bits,int,int,int,uint,uint,uint,uint,BOOL topdown = FALSE);
177 	FIBITMAP* FreeImage_ConvertFromRawBitsEx(BOOL,BYTE*,FREE_IMAGE_TYPE,int,int,int,uint,uint,uint,uint,BOOL topdown=FALSE);    // Added in 3.17.;
178 	void FreeImage_ConvertToRawBits(BYTE* bits,FIBITMAP*,int,uint,uint,uint,uint,BOOL topdown = FALSE);
179 	FIBITMAP* FreeImage_ConvertToFloat(FIBITMAP*);
180 	FIBITMAP* FreeImage_ConvertToRGBF(FIBITMAP*);
181 	FIBITMAP* FreeImage_ConvertToRGBAF(FIBITMAP*);    // Added in 3.17.;
182 	FIBITMAP* FreeImage_ConvertToUINT16(FIBITMAP*);
183 	FIBITMAP* FreeImage_ConvertToRGB16(FIBITMAP*);
184 	FIBITMAP* FreeImage_ConvertToRGBA16(FIBITMAP*);   // Added in 3.17.;
185 	FIBITMAP* FreeImage_ConvertToStandardType(FIBITMAP*,BOOL scale_linear = TRUE);
186 	FIBITMAP* FreeImage_ConvertToType(FIBITMAP*,FREE_IMAGE_TYPE,BOOL scale_linear = TRUE);
187 	FIBITMAP* FreeImage_ToneMapping(FIBITMAP*,FREE_IMAGE_TMO, double first_param = 0,double second_param = 0);
188 	FIBITMAP* FreeImage_TmoDrago03(FIBITMAP*,double = 2.2,double exposure = 0);
189 	FIBITMAP* FreeImage_TmoReinhard05(FIBITMAP*,double intensity = 0,double constrast = 0);
190 	FIBITMAP* FreeImage_TmoReinhard05Ex(FIBITMAP*,double intensity = 0,double constrast = 0,double adaptation = 1,double color_correction = 0);
191 	FIBITMAP* FreeImage_TmoFattal02(FIBITMAP*,double color_saturation = 0.5,double attenuation = 0.85);
192 	DWORD FreeImage_ZLibCompress(BYTE*,DWORD,BYTE*,DWORD);
193 	DWORD FreeImage_ZLibUncompress(BYTE*,DWORD,BYTE*,DWORD);
194 	DWORD FreeImage_ZLibGZip(BYTE*,DWORD,BYTE*,DWORD);
195 	DWORD FreeImage_ZLibGUnzip(BYTE*,DWORD,BYTE*,DWORD);
196 	DWORD FreeImage_ZLibCRC32(DWORD crc,BYTE*,DWORD);
197 	FITAG* FreeImage_CreateTag();
198 	void FreeImage_DeleteTag(FITAG*);
199 	FITAG* FreeImage_CloneTag(FITAG*);
200 	const(char)* FreeImage_GetTagKey(FITAG*);
201 	const(char)* FreeImage_GetTagDescription(FITAG*);
202 	WORD FreeImage_GetTagID(FITAG*);
203 	FREE_IMAGE_MDTYPE FreeImage_GetTagType(FITAG*);
204 	DWORD FreeImage_GetTagCount(FITAG*);
205 	DWORD FreeImage_GetTagLength(FITAG*);
206 	const(void)* FreeImage_GetTagValue(FITAG*);
207 	BOOL FreeImage_SetTagKey(FITAG*,const(char)*);
208 	BOOL FreeImage_SetTagDescription(FITAG*,const(char)*);
209 	BOOL FreeImage_SetTagID(FITAG*, WORD id);
210 	BOOL FreeImage_SetTagType(FITAG*, FREE_IMAGE_MDTYPE);
211 	BOOL FreeImage_SetTagCount(FITAG*,DWORD);
212 	BOOL FreeImage_SetTagLength(FITAG*,DWORD);
213 	BOOL FreeImage_SetTagValue(FITAG*,const(void)*);
214 	FIMETADATA* FreeImage_FindFirstMetadata(FREE_IMAGE_MDMODEL,FIBITMAP*,FITAG**);
215 	BOOL FreeImage_FindNextMetadata(FIMETADATA*,FITAG**);
216 	void FreeImage_FindCloseMetadata(FIMETADATA*);
217 	BOOL FreeImage_SetMetadata(FREE_IMAGE_MDMODEL,FIBITMAP*,const(char)*,FITAG*);
218 	BOOL FreeImage_GetMetadata(FREE_IMAGE_MDMODEL,FIBITMAP*,const(char)*,FITAG**);
219 	BOOL FreeImage_SetMetadataKeyValue(FREE_IMAGE_MDMODEL,FIBITMAP*,const(char)*,const(char)*); // Added in 3.17.;
220 	uint FreeImage_GetMetadataCount(FREE_IMAGE_MDMODEL,FIBITMAP*);
221 	BOOL FreeImage_CloneMetadata(FIBITMAP*,FIBITMAP*);
222 	const(char)* FreeImage_TagToString(FREE_IMAGE_MDMODEL,FITAG*,char* = null);
223 
224 	version(BindFI_JPEGTransform) {
225 		BOOL FreeImage_JPEGTransform(const(char)*,const(char)*,FREE_IMAGE_JPEG_OPERATION,BOOL perfect=TRUE);
226 		BOOL FreeImage_JPEGTransformU(const(wchar_t)*,const(wchar_t)*,FREE_IMAGE_JPEG_OPERATION,BOOL perfect=TRUE);
227 		BOOL FreeImage_JPEGCrop(const(char)*,const(char)*,int,int,int,int);
228 		BOOL FreeImage_JPEGCropU(const(wchar_t)*,const(wchar_t)*,int,int,int,int);
229 		BOOL FreeImage_JPEGTransformFromHandle(FreeImageIO*,fi_handle,FreeImageIO*,fi_handle,FREE_IMAGE_JPEG_OPERATION,int*,int*,int*,int*,BOOL perfect=TRUE);
230 		BOOL FreeImage_JPEGTransformCombined(const(char)*,const(char)*,FREE_IMAGE_JPEG_OPERATION,int*,int*,int*,int*,BOOL perfect=TRUE);
231 		BOOL FreeImage_JPEGTransformCombinedU(const(wchar_t)*,const(wchar_t)*,FREE_IMAGE_JPEG_OPERATION,int*,int*,int*,int*,BOOL perfect=TRUE);
232 		BOOL FreeImage_JPEGTransformCombinedFromMemory(FIMEMORY*,FIMEMORY*,FREE_IMAGE_JPEG_OPERATION,int*,int*,int*,int*,BOOL perfect=TRUE);
233 	}
234 
235 	FIBITMAP* FreeImage_Rotate(FIBITMAP*,double angle,const(void*) bkcolor = null);
236 	FIBITMAP* FreeImage_RotateEx(FIBITMAP*,double,double,double,double,double,BOOL);
237 	BOOL FreeImage_FlipHorizontal(FIBITMAP*);
238 	BOOL FreeImage_FlipVertical(FIBITMAP*);
239 	FIBITMAP* FreeImage_Rescale(FIBITMAP*,int,int,FREE_IMAGE_FILTER);
240 	FIBITMAP* FreeImage_MakeThumbnail(FIBITMAP*,int,BOOL convert = TRUE);
241 	FIBITMAP* FreeImage_RescaleRect(FIBITMAP*,int,int,int,int,int,int,FREE_IMAGE_FILTER filter = FILTER_CATMULLROM,uint flags = 0); // Added in 3.17.;
242 	BOOL FreeImage_AdjustCurve(FIBITMAP*,BYTE*,FREE_IMAGE_COLOR_CHANNEL);
243 	BOOL FreeImage_AdjustGamma(FIBITMAP*,double);
244 	BOOL FreeImage_AdjustBrightness(FIBITMAP*,double);
245 	BOOL FreeImage_AdjustContrast(FIBITMAP*,double);
246 	BOOL FreeImage_Invert(FIBITMAP*);
247 	BOOL FreeImage_GetHistogram(FIBITMAP*,DWORD*,FREE_IMAGE_COLOR_CHANNEL = FICC_BLACK);
248 	int FreeImage_GetAdjustColorsLookupTable(BYTE* LUT,double,double,double,BOOL);
249 	BOOL FreeImage_AdjustColors(FIBITMAP*,double,double,double,BOOL invert = FALSE);
250 	uint FreeImage_ApplyColorMapping(FIBITMAP*,RGBQUAD*, RGBQUAD*,uint,BOOL,BOOL);
251 	uint FreeImage_SwapColors(FIBITMAP*,RGBQUAD*,RGBQUAD*,BOOL);
252 	uint FreeImage_ApplyPaletteIndexMapping(FIBITMAP*,BYTE*,BYTE*,uint,BOOL);
253 	uint FreeImage_SwapPaletteIndices(FIBITMAP*,BYTE*,BYTE*);
254 	FIBITMAP* FreeImage_GetChannel(FIBITMAP*,FREE_IMAGE_COLOR_CHANNEL);
255 	BOOL FreeImage_SetChannel(FIBITMAP*,FIBITMAP*,FREE_IMAGE_COLOR_CHANNEL);
256 	FIBITMAP* FreeImage_GetComplexChannel(FIBITMAP*,FREE_IMAGE_COLOR_CHANNEL);
257 	BOOL FreeImage_SetComplexChannel(FIBITMAP*,FIBITMAP*,FREE_IMAGE_COLOR_CHANNEL);
258 	FIBITMAP* FreeImage_Copy(FIBITMAP*,int,int,int,int);
259 	BOOL FreeImage_Paste(FIBITMAP*,FIBITMAP*,int,int,int);
260 	FIBITMAP* FreeImage_CreateView(FIBITMAP*,uint,uint,uint,uint); // Added in 3.17.;
261 	FIBITMAP* FreeImage_Composite(FIBITMAP*,BOOL useFileBkg = FALSE,RGBQUAD* appBkColor = null,FIBITMAP*bg = null);
262 	BOOL FreeImage_PreMultiplyWithAlpha(FIBITMAP*);
263 	BOOL FreeImage_FillBackground(FIBITMAP*,const(void*),int options = 0);
264 	FIBITMAP* FreeImage_EnlargeCanvas(FIBITMAP*,int,int,int,int,const(void*),int options = 0);
265 	FIBITMAP* FreeImage_AllocateEx(int,int,int,const(RGBQUAD)*,int options = 0,const(RGBQUAD)* palette = null,uint red_mask = 0,uint green_mask = 0,uint blue_mask = 0);
266 	FIBITMAP* FreeImage_AllocateExT(FREE_IMAGE_TYPE,int,int,int,const(void*),int options = 0,const(RGBQUAD)* palette = null,uint red_mask = 0,uint green_mask = 0,uint blue_mask = 0);
267 	FIBITMAP* FreeImage_MultigridPoissonSolver(FIBITMAP*,int ncycle = 3);
268 
269 	static if(fiSupport >= FISupport.fi318) {
270 		BOOL FreeImage_Validate(FREE_IMAGE_FORMAT,const(char)*);
271 		BOOL FreeImage_ValidateU(FREE_IMAGE_FORMAT,const(wchar_t)*);
272 		BOOL FreeImage_ValidateFromHandle(FREE_IMAGE_FORMAT,FreeImageIO*,fi_handle);
273 		BOOL FreeImage_ValidateFromMemory(FREE_IMAGE_FORMAT,FIMEMORY);
274 		void FreeImage_ConvertLine1To32MapTransparency(BYTE*,BYTE*,int,RGBQUAD*,BYTE*,int);
275 		void FreeImage_ConvertLine4To32MapTransparency(BYTE*,BYTE*,int,RGBQUAD*,BYTE*,int);
276 		void FreeImage_ConvertLine8To32MapTransparency(BYTE*,BYTE*,int,RGBQUAD*,BYTE*,int);
277 	}
278 }