1# -*- coding: utf-8 -*- 2 3import sys 4 5import ctypes as C 6 7#Functions list that now acutally wrap. The third value are the return 8#type, if it exists, or if I'm able to translate from C code :) 9 10if sys.version_info[0] > 2: 11 import FreeImagePy.constants as CO 12else: 13 import constants as CO 14 15FUNCTION_LIST = ( 16 17 #General funtions 18 ('FreeImage_Initialise', '@4'), 19 ('FreeImage_DeInitialise', '@0'), 20 ('FreeImage_GetVersion', '@0', None, C.c_char_p), 21 ('FreeImage_GetCopyrightMessage', '@0', None, C.c_char_p), 22 ('FreeImage_SetOutputMessage', '@4'), 23 24 #Bitmap management functions 25 ('FreeImage_Allocate', '@24', CO.COL_1TO32), 26 ('FreeImage_AllocateT', '@28'), 27 ('FreeImage_Load', '@12'), 28 ('FreeImage_LoadU', '@12'), 29 ('FreeImage_LoadFromHandle','@16'), 30 ('FreeImage_Save', '@16'), 31 ('FreeImage_SaveU', '@16'), 32 ('FreeImage_SaveToHandle', '@20'), 33 ('FreeImage_Clone', '@4'), 34 ('FreeImage_Unload', '@4'), 35 36 #Bitmap information 37 ('FreeImage_GetImageType', '@4'), 38 ('FreeImage_GetColorsUsed', '@4', CO.COL_1TO32 ), 39 ('FreeImage_GetBPP', '@4'), 40 ('FreeImage_GetWidth', '@4'), 41 ('FreeImage_GetHeight', '@4'), 42 ('FreeImage_GetLine', '@4'), 43 ('FreeImage_GetPitch', '@4'), 44 ('FreeImage_GetDIBSize', '@4'), 45 ('FreeImage_GetPalette', '@4', CO.COL_1TO32, 46 C.POINTER(CO.RGBQUAD) ), 47 ('FreeImage_GetDotsPerMeterX', '@4'), 48 ('FreeImage_GetDotsPerMeterY', '@4'), 49 ('FreeImage_SetDotsPerMeterX', '@8'), 50 ('FreeImage_SetDotsPerMeterY', '@8'), 51 ('FreeImage_GetInfoHeader', '@4', CO.COL_1TO32, 52 C.POINTER(CO.PBITMAPINFOHEADER)), 53 ('FreeImage_GetColorType', '@4', CO.COL_1TO32 ), 54 ('FreeImage_GetRedMask', '@4', CO.COL_1TO32 ), 55 ('FreeImage_GetGreenMask', '@4', CO.COL_1TO32 ), 56 ('FreeImage_GetBlueMask', '@4', CO.COL_1TO32 ), 57 ('FreeImage_GetTransparencyCount', '@4', CO.COL_1TO32 ), 58 ('FreeImage_GetTransparencyTable', '@4', (CO.COL_8,), C.POINTER(CO.BYTE)), 59 ('FreeImage_SetTransparencyTable', '@12', (CO.COL_8,) ), 60 ('FreeImage_SetTransparent', '@8', (CO.COL_8, CO.COL_32) ), 61 ('FreeImage_IsTransparent', '@4', CO.COL_1TO32 ), 62 ('FreeImage_HasBackgroundColor', '@4', (CO.COL_8, CO.COL_24, CO.COL_32) ), 63 ('FreeImage_GetBackgroundColor', '@8', (CO.COL_8, CO.COL_24, CO.COL_32), 64 C.POINTER(CO.RGBQUAD) ), 65 ('FreeImage_SetBackgroundColor', '@8', (CO.COL_8, CO.COL_24, CO.COL_32) ), 66 67 #Filetype functions 68 ('FreeImage_GetFileType', '@8'), 69 ('FreeImage_GetFileTypeU', '@8'), 70 ('FreeImage_GetFileTypeFromHandle', '@12'), 71 72 73 #Pixel access 74 ('FreeImage_GetBits', '@4', None, C.POINTER(CO.BYTE)), 75 ('FreeImage_GetScanLine', '@8', None, C.POINTER(CO.BYTE)), 76 ('FreeImage_GetPixelIndex', '@16', CO.COL_1TO8 ), 77 ('FreeImage_SetPixelIndex', '@16', CO.COL_1TO8 ), 78 ('FreeImage_GetPixelColor', '@16', CO.COL_16TO32 ), 79 ('FreeImage_SetPixelColor', '@16', CO.COL_16TO32 ), 80 81 #Conversion / Trasformation 82 ('FreeImage_ConvertTo4Bits', '@4', CO.COL_1TO32), 83 ('FreeImage_ConvertTo8Bits', '@4', CO.COL_1TO32), 84 ('FreeImage_ConvertToGreyscale', '@4', CO.COL_1TO32), 85 ('FreeImage_ConvertTo16Bits555', '@4', CO.COL_1TO32), 86 ('FreeImage_ConvertTo16Bits565', '@4', CO.COL_1TO32), 87 ('FreeImage_ConvertTo24Bits', '@4', CO.COL_1TO48), 88 ('FreeImage_ConvertTo32Bits', '@4', CO.COL_1TO32), 89 ('FreeImage_ColorQuantize', '@8', (CO.COL_24,)), 90 ('FreeImage_ColorQuantizeEx', '@20', (CO.COL_24,)), 91 ('FreeImage_Threshold', '@8', CO.COL_1TO32), 92 ('FreeImage_Dither', '@8', CO.COL_1TO32), 93 ('FreeImage_ConvertFromRawBits', '@36', CO.COL_1TO32), 94 ('FreeImage_ConvertToRawBits', '@32', CO.COL_1TO32), 95 ('FreeImage_ConvertToStandardType', '@8'), 96 ('FreeImage_ConvertToType', '@12'), 97 ('FreeImage_ConvertToRGBF', '@4', (CO.COL_24, CO.COL_32,)), 98 99 #Copy / Paste / Composite routines 100 ('FreeImage_Copy', '@20'), 101 ('FreeImage_Paste', '@20', CO.COL_1TO32), 102 103 #Plugin 104 ('FreeImage_GetFIFCount', '@0'), 105 ('FreeImage_SetPluginEnabled', '@8'), 106 ('FreeImage_FIFSupportsReading', '@4'), 107 ('FreeImage_GetFIFFromFilename', '@4'), 108 ('FreeImage_GetFIFFromFilenameU', '@4'), 109 ('FreeImage_FIFSupportsExportBPP', '@8'), 110 ('FreeImage_FIFSupportsExportType', '@8'), 111 ('FreeImage_FIFSupportsICCProfiles', '@4'), 112 ('FreeImage_FIFSupportsWriting', '@4'), 113 ('FreeImage_IsPluginEnabled', '@4'), 114 ('FreeImage_RegisterLocalPlugin', '@20'), 115 ('FreeImage_GetFIFDescription', '@4', None, C.c_char_p), 116 ('FreeImage_GetFIFExtensionList', '@4', None, C.c_char_p), 117 ('FreeImage_GetFIFFromFormat', '@4', None, C.c_char_p), 118 ('FreeImage_GetFIFFromMime', '@4', None, C.c_char_p), 119 ('FreeImage_GetFIFMimeType', '@4', None, C.c_char_p), 120 ('FreeImage_GetFIFRegExpr', '@4', None, C.c_char_p), 121 ('FreeImage_GetFormatFromFIF', '@4', None, C.c_char_p), 122 123 #Upsampling / downsampling 124 ('FreeImage_Rescale', '@16', CO.COL_1TO32 ), 125 ('FreeImage_MakeThumbnail', '@12', CO.COL_1TO32 ), 126 127 #Rotation and flipping 128 ('FreeImage_RotateClassic', '@12', CO.COL_1TO32), 129 ('FreeImage_RotateEx', '@48', (CO.COL_8, CO.COL_24, CO.COL_32), ), 130 131 132 #Color manipulation 133 ('FreeImage_AdjustBrightness', '@12', (CO.COL_8, CO.COL_24, CO.COL_32), CO.BOOL), 134 ('FreeImage_AdjustCurve', '@12', (CO.COL_8, CO.COL_24, CO.COL_32), CO.BOOL), 135 ('FreeImage_AdjustGamma', '@12', (CO.COL_8, CO.COL_24, CO.COL_32), CO.BOOL), 136 ('FreeImage_AdjustContrast', '@12', (CO.COL_8, CO.COL_24, CO.COL_32), CO.BOOL), 137 ('FreeImage_GetHistogram', '@12', (CO.COL_8, CO.COL_24, CO.COL_32), CO.BOOL), 138 ('FreeImage_Invert', '@4', CO.COL_1TO32, CO.BOOL), 139 ('FreeImage_GetChannel', '@8', (CO.COL_24, CO.COL_32)), 140 ('FreeImage_SetChannel', '@12', (CO.COL_24, CO.COL_32)), 141 ('FreeImage_GetComplexChannel', '@8'), 142 ('FreeImage_SetComplexChannel', '@12'), 143 144 #Multipage 145 ('FreeImage_OpenMultiBitmap', '@24'), 146 ('FreeImage_AppendPage', '@8'), 147 ('FreeImage_CloseMultiBitmap', '@8'), 148 ('FreeImage_GetPageCount', '@4'), 149 ('FreeImage_LockPage', '@8'), 150 ('FreeImage_UnlockPage', '@12'), 151 ('FreeImage_InsertPage', '@12'), 152 ('FreeImage_DeletePage', '@8'), 153 ('FreeImage_MovePage', '@12'), 154 ('FreeImage_GetLockedPageNumbers', '@12'), 155 156 #Tag 157 ('FreeImage_GetTagValue', '@4'), 158 ('FreeImage_GetTagDescription', '@4', None, C.c_char_p), 159 ('FreeImage_TagToString', '@12', None, C.c_char_p), 160 ('FreeImage_GetTagCount', '@4', None, CO.DWORD), 161 ('FreeImage_GetTagKey', '@4', None, C.c_char_p), 162 ('FreeImage_GetTagID', '@4', None, C.c_char_p), 163 ('FreeImage_GetTagType', '@4'), 164 165 166 #Metadata 167 ('FreeImage_GetMetadata', '@16'), 168 ('FreeImage_GetMetadataCount', '@8', None, CO.DWORD), 169 ('FreeImage_FindFirstMetadata', '@12', None, CO.VOID), 170 ('FreeImage_FindNextMetadata', '@8', None, CO.VOID), 171 ('FreeImage_FindCloseMetadata', '@4'), 172 173 ('FreeImage_IsLittleEndian', '@0') 174 175 # --------------- This functions don't work yet :( 176 177 #All handle functions... 178 179) 180