# Low Level Interface

# Low Level Interface

Imaging's low level interface is set of functions operating on TImageData structure and TDynImageDataArray. These functions are implemented in Imaging.pas unit and you can find how to use them in How To ... section. You can also look at Demos section. Low level interface is accessible from programming languages other than Object Pascal. Information on this can be found in Using dll/so Access section.

There are more functions in Imaging that are not part of low level interface but can be freely used with it. Ulike those, low level interface functions are provided for other programming languages too. Look at Imaging.pas, ImagingFormats.pas, and other units for more functions.

Here is the table with all low level interface functions currently available.

General Functions
InitImage
NewImage
TestImage
FreeImage
FreeImagesInArray
TestImagesInArray
DetermineFileFormat
DetermineStreamFormat
DetermineMemoryFormat
IsFileFormatSupported
EnumFileFormats
Loading Functions
LoadImageFromFile
LoadImageFromStream
LoadImageFromMemory
LoadMultiImageFromFile
LoadMultiImageFromStream
LoadMultiImageFromMemory
Saving Functions
SaveImageToFile
SaveImageToStream
SaveImageToMemory
SaveMultiImageToFile
SaveMultiImageToStream
SaveMultiImageToMemory
Manipulation Functions
CloneImage
ConvertImage
FlipImage
MirrorImage
ResizeImage
SwapChannels
ReduceColors
GenerateMipMaps
MapImageToPalette
SplitImage
MakePaletteForImages
RotateImage
Drawing/Pixel Functions
CopyRect
FillRect
ReplaceColor
StretchRect
GetPixelDirect
SetPixelDirect
GetPixel32
SetPixel32
GetPixelFP
SetPixelFP
Palette Functions
NewPalette
FreePalette
CopyPalette
FindColor
FillGrayscalePalette
FillCustomPalette
SwapChannelsOfPalette
Options Functions
SetOption
GetOption
PushOptions
PopOptions
Image Format Functions
GetImageFormatInfo
GetPixelsSize
IO Functions
SetUserFileIO
ResetFileIO

You can find other functions in Reference but they are not available for other languages thus they are not part of the low level interface. Some of them are even dangerous to use if you do not know what you are doing.