ImagingImport.pas 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. {
  2. $Id: ImagingImport.pas,v 1.10 2006/10/26 13:29:30 galfar Exp $
  3. Vampyre Imaging Library
  4. by Marek Mauder ([email protected])
  5. http://imaginglib.sourceforge.net
  6. The contents of this file are used with permission, subject to the Mozilla
  7. Public License Version 1.1 (the "License"); you may not use this file except
  8. in compliance with the License. You may obtain a copy of the License at
  9. http://www.mozilla.org/MPL/MPL-1.1.html
  10. Software distributed under the License is distributed on an "AS IS" basis,
  11. WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
  12. the specific language governing rights and limitations under the License.
  13. Alternatively, the contents of this file may be used under the terms of the
  14. GNU Lesser General Public License (the "LGPL License"), in which case the
  15. provisions of the LGPL License are applicable instead of those above.
  16. If you wish to allow use of your version of this file only under the terms
  17. of the LGPL License and not to allow others to use your version of this file
  18. under the MPL, indicate your decision by deleting the provisions above and
  19. replace them with the notice and other provisions required by the LGPL
  20. License. If you do not delete the provisions above, a recipient may use
  21. your version of this file under either the MPL or the LGPL License.
  22. For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html
  23. }
  24. { This unit contains Pascal interface to Imaging library which is
  25. compiled into the dynamic link library.}
  26. unit ImagingImport;
  27. {$I ImagingOptions.inc}
  28. interface
  29. uses
  30. ImagingTypes;
  31. const
  32. {$IFDEF MSWINDOWS}
  33. LibraryName = 'VampyreImaging.dll';
  34. {$ENDIF}
  35. {$IFDEF LINUX}
  36. LibraryName = 'libVampyreImaging.so';
  37. {$ENDIF}
  38. procedure ImGetVersion(var Major, Minor, Patch: LongInt); cdecl; external LibraryName;
  39. procedure ImInitImage(var Image: TImageData); cdecl; external LibraryName;
  40. function ImNewImage(Width, Height: LongInt; Format: TImageFormat; var Image: TImageData): Boolean; cdecl; external LibraryName;
  41. function ImTestImage(var Image: TImageData): Boolean; cdecl; external LibraryName;
  42. function ImFreeImage(var Image: TImageData): Boolean; cdecl; external LibraryName;
  43. function ImDetermineFileFormat(FileName, Ext: PChar): Boolean; cdecl; external LibraryName;
  44. function ImDetermineMemoryFormat(Data: Pointer; Size: LongInt; Ext: PChar): Boolean; cdecl; external LibraryName;
  45. function ImIsFileFormatSupported(FileName: PChar): Boolean; cdecl; external LibraryName;
  46. function ImInitImageList(Size: LongInt; var ImageList: TImageDataList): Boolean; cdecl; external LibraryName;
  47. function ImGetImageListSize(ImageList: TImageDataList): LongInt; cdecl; external LibraryName;
  48. function ImGetImageListElement(ImageList: TImageDataList; Index: LongInt; var OutImage: TImageData): Boolean; cdecl; external LibraryName;
  49. function ImSetImageListSize(ImageList: TImageDataList; NewSize: LongInt): Boolean; cdecl; external LibraryName;
  50. function ImSetImageListElement(ImageList: TImageDataList; Index: LongInt; const InImage: TImageData): Boolean; cdecl; external LibraryName;
  51. function ImTestImagesInList(ImageList: TImageDataList): Boolean; cdecl; external LibraryName;
  52. function ImFreeImageList(var ImageList: TImageDataList): Boolean; cdecl; external LibraryName;
  53. function ImLoadImageFromFile(FileName: PChar; var Image: TImageData): Boolean; cdecl; external LibraryName;
  54. function ImLoadImageFromMemory(Data: Pointer; Size: LongInt; var Image: TImageData): Boolean; cdecl; external LibraryName;
  55. function ImLoadMultiImageFromFile(FileName: PChar; var ImageList: TImageDataList): Boolean; cdecl; external LibraryName;
  56. function ImLoadMultiImageFromMemory(Data: Pointer; Size: LongInt; var ImageList: TImageDataList): Boolean; cdecl; external LibraryName;
  57. function ImSaveImageToFile(FileName: PChar; const Image: TImageData): Boolean; cdecl; external LibraryName;
  58. function ImSaveImageToMemory(Ext: PChar; Data: Pointer; var Size: LongInt; const Image: TImageData): Boolean; cdecl; external LibraryName;
  59. function ImSaveMultiImageToFile(FileName: PChar; ImageList: TImageDataList): Boolean; cdecl; external LibraryName;
  60. function ImSaveMultiImageToMemory(Ext: PChar; Data: Pointer; Size: PLongInt; ImageList: TImageDataList): Boolean; cdecl; external LibraryName;
  61. function ImCloneImage(const Image: TImageData; var Clone: TImageData): Boolean; cdecl; external LibraryName;
  62. function ImConvertImage(var Image: TImageData; DestFormat: TImageFormat): Boolean; cdecl; external LibraryName;
  63. function ImFlipImage(var Image: TImageData): Boolean; cdecl; external LibraryName;
  64. function ImMirrorImage(var Image: TImageData): Boolean; cdecl; external LibraryName;
  65. function ImResizeImage(var Image: TImageData; NewWidth, NewHeight: LongInt; Filter: TResizeFilter): Boolean; cdecl; external LibraryName;
  66. function ImSwapChannels(var Image: TImageData; SrcChannel, DstChannel: LongInt): Boolean; cdecl; external LibraryName;
  67. function ImReduceColors(var Image: TImageData; MaxColors: LongInt): Boolean; cdecl; external LibraryName;
  68. function ImGenerateMipMaps(const Image: TImageData; Levels: LongInt; var MipMaps: TImageDataList): Boolean; cdecl; external LibraryName;
  69. function ImMapImageToPalette(var Image: TImageData; Pal: PPalette32; Entries: LongInt): Boolean; cdecl; external LibraryName;
  70. function ImSplitImage(var Image: TImageData; var Chunks: TImageDataList; ChunkWidth, ChunkHeight: LongInt; var XChunks, YChunks: LongInt; PreserveSize: Boolean; Fill: Pointer): Boolean; cdecl; external LibraryName;
  71. function ImMakePaletteForImages(Images: TImageDataList; Pal: PPalette32; MaxColors: LongInt; ConvertImages: Boolean): Boolean; cdecl; external LibraryName;
  72. function ImRotateImage(var Image: TImageData; Angle: LongInt): Boolean; cdecl; external LibraryName;
  73. function ImCopyRect(const SrcImage: TImageData; SrcX, SrcY, Width, Height: LongInt; var DstImage: TImageData; DstX, DstY: LongInt): Boolean; cdecl; external LibraryName;
  74. function ImFillRect(var Image: TImageData; X, Y, Width, Height: LongInt; Fill: Pointer): Boolean; cdecl; external LibraryName;
  75. function ImReplaceColor(var Image: TImageData; X, Y, Width, Height: LongInt; OldPixel, NewPixel: Pointer): Boolean; cdecl; external LibraryName;
  76. function ImStretchRect(const SrcImage: TImageData; SrcX, SrcY, SrcWidth, SrcHeight: LongInt; var DstImage: TImageData; DstX, DstY, DstWidth, DstHeight: LongInt; Filter: TResizeFilter): Boolean; cdecl; external LibraryName;
  77. procedure ImGetPixelDirect(const Image: TImageData; X, Y: LongInt; Pixel: Pointer); cdecl; external LibraryName;
  78. procedure ImSetPixelDirect(const Image: TImageData; X, Y: LongInt; Pixel: Pointer); cdecl; external LibraryName;
  79. function ImGetPixel32(const Image: TImageData; X, Y: LongInt): TColor32Rec; cdecl; external LibraryName;
  80. procedure ImSetPixel32(const Image: TImageData; X, Y: LongInt; const Color: TColor32Rec); cdecl; external LibraryName;
  81. function ImGetPixelFP(const Image: TImageData; X, Y: LongInt): TColorFPRec; cdecl; external LibraryName;
  82. procedure ImSetPixelFP(const Image: TImageData; X, Y: LongInt; const Color: TColorFPRec); cdecl; external LibraryName;
  83. function ImNewPalette(Entries: LongInt; var Pal: PPalette32): Boolean; cdecl; external LibraryName;
  84. function ImFreePalette(var Pal: PPalette32): Boolean; cdecl; external LibraryName;
  85. function ImCopyPalette(SrcPal, DstPal: PPalette32; SrcIdx, DstIdx, Count: LongInt): Boolean; cdecl; external LibraryName;
  86. function ImFindColor(Pal: PPalette32; Entries: LongInt; Color: TColor32): LongInt; cdecl; external LibraryName;
  87. function ImFillGrayscalePalette(Pal: PPalette32; Entries: LongInt): Boolean; cdecl; external LibraryName;
  88. function ImFillCustomPalette(Pal: PPalette32; Entries: LongInt; RBits, GBits, BBits: Byte; Alpha: Byte): Boolean; cdecl; external LibraryName;
  89. function ImSwapChannelsOfPalette(Pal: PPalette32; Entries, SrcChannel, DstChannel: LongInt): Boolean; cdecl; external LibraryName;
  90. function ImSetOption(OptionId, Value: LongInt): Boolean; cdecl; external LibraryName;
  91. function ImGetOption(OptionId: LongInt): LongInt; cdecl; external LibraryName;
  92. function ImPushOptions: Boolean; cdecl; external LibraryName;
  93. function ImPopOptions: Boolean; cdecl; external LibraryName;
  94. function ImGetImageFormatInfo(Format: TImageFormat; var Info: TImageFormatInfo): Boolean; cdecl; external LibraryName;
  95. function ImGetPixelsSize(Format: TImageFormat; Width, Height: LongInt): LongInt; cdecl; external LibraryName;
  96. procedure ImSetUserFileIO(OpenReadProc: TOpenReadProc; OpenWriteProc:
  97. TOpenWriteProc; CloseProc: TCloseProc; EofProc: TEofProc; SeekProc: TSeekProc;
  98. TellProc: TTellProc; ReadProc: TReadProc; WriteProc: TWriteProc); cdecl; external LibraryName;
  99. procedure ImResetFileIO; cdecl; external LibraryName;
  100. implementation
  101. end.