ilu.bas 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. Attribute VB_Name = "DevIL_manipulate"
  2. '-----------------------------------------------------------------------------
  3. '
  4. ' ImageLib Utility Sources
  5. ' Copyright (C) 2000-2002 by Denton Woods
  6. ' Converted from ilu.h by Rune Kock (rune@vupti.com)
  7. ' based on the earlier conversion by Timo Heister (Timo-Heister@gmx.de)
  8. ' Last modified: 22 June 2002, based on ilu.h dated 06/22/2002
  9. '
  10. ' Filename: ilu.bas
  11. '
  12. ' Description: The main include file for ILU
  13. '
  14. '-----------------------------------------------------------------------------
  15. ' I've converted the types as follows. I have not dared use user-defined types, as I
  16. ' don't know how VB handles them internally. This means, unfortunately, that the headers
  17. ' are less informative than the original. So refer to ilu.h to see the original types.
  18. ' ILenum long
  19. ' ILboolean byte
  20. ' ILbitfield long
  21. ' ILbyte byte
  22. ' ILshort integer
  23. ' ILint long
  24. ' ILsizei long
  25. ' ILubyte byte
  26. ' ILushort integer
  27. ' ILuint long
  28. ' ILfloat single
  29. ' ILclampf single
  30. ' ILdouble double
  31. ' ILclampd double
  32. ' ILvoid n/a
  33. ' ILHANDLE long
  34. Option Explicit
  35. Public Const ILU_VERSION_1_6_0 = 1
  36. Public Const ILU_VERSION = 160
  37. Public Const ILU_FILTER = &H2600
  38. Public Const ILU_NEAREST = &H2601
  39. Public Const ILU_LINEAR = &H2602
  40. Public Const ILU_BILINEAR = &H2603
  41. Public Const ILU_SCALE_BOX = &H2604
  42. Public Const ILU_SCALE_TRIANGLE = &H2605
  43. Public Const ILU_SCALE_BELL = &H2606
  44. Public Const ILU_SCALE_BSPLINE = &H2607
  45. Public Const ILU_SCALE_LANCZOS3 = &H2608
  46. Public Const ILU_SCALE_MITCHELL = &H2609
  47. ' Error types
  48. Public Const ILU_INVALID_ENUM = &H501
  49. Public Const ILU_OUT_OF_MEMORY = &H502
  50. Public Const ILU_INTERNAL_ERROR = &H504
  51. Public Const ILU_INVALID_VALUE = &H505
  52. Public Const ILU_ILLEGAL_OPERATION = &H506
  53. Public Const ILU_INVALID_PARAM = &H509
  54. ' Values
  55. Public Const ILU_PLACEMENT = &H700
  56. Public Const ILU_LOWER_LEFT = &H701
  57. Public Const ILU_LOWER_RIGHT = &H702
  58. Public Const ILU_UPPER_LEFT = &H703
  59. Public Const ILU_UPPER_RIGHT = &H704
  60. Public Const ILU_CENTER = &H705
  61. Public Const ILU_CONVOLUTION_MATRIX = &H710
  62. Public Const ILU_VERSION_NUM = &HDE2
  63. ' Filters
  64. Public Const ILU_FILTER_BLUR = &H803
  65. Public Const ILU_FILTER_GAUSSIAN_3x3 = &H804
  66. Public Const ILU_FILTER_GAUSSIAN_5X5 = &H805
  67. Public Const ILU_FILTER_EMBOSS1 = &H807
  68. Public Const ILU_FILTER_EMBOSS2 = &H808
  69. Public Const ILU_FILTER_LAPLACIAN1 = &H80A
  70. Public Const ILU_FILTER_LAPLACIAN2 = &H80B
  71. Public Const ILU_FILTER_LAPLACIAN3 = &H80C
  72. Public Const ILU_FILTER_LAPLACIAN4 = &H80D
  73. Public Const ILU_FILTER_SHARPEN1 = &H80E
  74. Public Const ILU_FILTER_SHARPEN2 = &H80F
  75. Public Const ILU_FILTER_SHARPEN3 = &H810
  76. Public Type ILinfo
  77. ID As Long ' the image's id
  78. DataPointer As Long ' pointer to the image's data (useless in VB)
  79. width As Long ' the image's width
  80. height As Long ' the image's height
  81. Depth As Long ' the image's depth
  82. Bpp As Byte ' bytes per pixel (not bits) of the image
  83. SizeOfData As Long ' the total size of the data (in bytes)
  84. Format As Long ' image format (in IL enum style)
  85. IType As Long ' image type (in IL enum style)
  86. Origin As Long ' origin of the image
  87. PalettePointer As Long ' pointer to the image's palette (useless in VB)
  88. PalType As Long ' palette type
  89. PalSize As Long ' palette size
  90. NumNext As Long ' number of images following
  91. NumMips As Long ' number of mipmaps
  92. NumLayers As Long ' number of layers
  93. End Type
  94. ' ImageLib Utility Functions
  95. Public Declare Function iluAlienify Lib "ilu" () As Byte
  96. Public Declare Function iluBitFilter1 Lib "ilu" () As Byte
  97. Public Declare Function iluBitFilter2 Lib "ilu" () As Byte
  98. Public Declare Function iluBitFilter3 Lib "ilu" () As Byte
  99. Public Declare Function iluBlurAvg Lib "ilu" (ByVal Iter As Long) As Byte
  100. Public Declare Function iluBlurGaussian Lib "ilu" (ByVal Iter As Long) As Byte
  101. Public Declare Function iluBuildMipmaps Lib "ilu" () As Byte
  102. Public Declare Function iluColoursUsed Lib "ilu" () As Long
  103. Public Declare Function iluCompareImage Lib "ilu" (ByVal Comp As Long) As Byte
  104. Public Declare Function iluContrast Lib "ilu" (ByVal Contrast As Single) As Byte
  105. Public Declare Function iluCrop Lib "ilu" (ByVal XOff As Long, ByVal YOff As Long, ByVal ZOff As Long, ByVal width As Long, ByVal height As Long, ByVal Depth As Long) As Byte
  106. Public Declare Sub iluDeleteImage Lib "ilu" (ByVal ID As Long)
  107. Public Declare Function iluEdgeDetectE Lib "ilu" () As Byte
  108. Public Declare Function iluEdgeDetectP Lib "ilu" () As Byte
  109. Public Declare Function iluEdgeDetectS Lib "ilu" () As Byte
  110. Public Declare Function iluEmboss Lib "ilu" () As Byte
  111. Public Declare Function iluEnlargeCanvas Lib "ilu" (ByVal width As Long, ByVal height As Long, ByVal Depth As Long) As Byte
  112. Public Declare Function iluEnlargeImage Lib "ilu" (ByVal XDim As Single, ByVal YDim As Single, ByVal ZDim As Single) As Byte
  113. Public Declare Function iluEqualize Lib "ilu" () As Byte
  114. Public Declare Function iluErrorString Lib "ilu" (ByVal Error As Long) As Long
  115. Public Declare Function iluFlipImage Lib "ilu" () As Byte
  116. Public Declare Function iluGammaCorrect Lib "ilu" (ByVal Gamma As Single) As Byte
  117. Public Declare Function iluGenImage Lib "ilu" () As Long
  118. Public Declare Sub iluGetImageInfo Lib "ilu" (ByRef Info As ILinfo)
  119. Public Declare Function iluGetInteger Lib "ilu" (ByVal Mode As Long) As Long
  120. Public Declare Sub iluGetIntegerv Lib "ilu" (ByVal Mode As Long, ByRef Param As Long)
  121. Public Declare Function iluGetString Lib "ilu" (ByVal StringName As Long) As Long
  122. Public Declare Sub iluImageParameter Lib "ilu" (ByVal PName As Long, ByVal Param As Long)
  123. Public Declare Sub iluInit Lib "ilu" ()
  124. Public Declare Function iluLoadImage Lib "ilu" (ByVal FileName As String) As Long
  125. Public Declare Function iluMirror Lib "ilu" () As Byte
  126. Public Declare Function iluNegative Lib "ilu" () As Byte
  127. Public Declare Function iluNoisify Lib "ilu" (ByVal Tolerance As Single) As Byte
  128. Public Declare Function iluPixelize Lib "ilu" (ByVal PixSize As Long) As Byte
  129. ' Public Declare Sub iluRegionf Lib "ilu" (ByVal ULx As Single, ByVal ULy As Single, ByVal BRx As Single, ByVal BRy As Single)
  130. ' Public Declare Sub iluRegioni Lib "ilu" (ByVal ULx As Long, ByVal ULy As Long, ByVal BRx As Long, ByVal BRy As Long)
  131. Public Declare Function iluReplaceColour Lib "ilu" (ByVal Red As Byte, ByVal Green As Byte, ByVal Blue As Byte, ByVal Tolerance As Single) As Byte
  132. Public Declare Function iluRotate Lib "ilu" (ByVal Angle As Single) As Byte
  133. Public Declare Function iluRotate3D Lib "ilu" (ByVal x As Single, ByVal y As Single, ByVal z As Single, ByVal Angle As Single) As Byte
  134. Public Declare Function iluSaturate1f Lib "ilu" (ByVal Saturation As Single) As Byte
  135. Public Declare Function iluSaturate4f Lib "ilu" (ByVal r As Single, ByVal g As Single, ByVal b As Single, ByVal Saturation As Single) As Byte
  136. Public Declare Function iluScale Lib "ilu" (ByVal width As Long, ByVal height As Long, ByVal Depth As Long) As Byte
  137. Public Declare Function iluScaleColours Lib "ilu" (ByVal r As Single, ByVal g As Single, ByVal b As Single) As Byte
  138. Public Declare Function iluSharpen Lib "ilu" (ByVal Factor As Single, ByVal Iter As Long) As Byte
  139. Public Declare Function iluSwapColours Lib "ilu" () As Byte
  140. Public Declare Function iluWave Lib "ilu" (ByVal Angle As Single) As Byte
  141. Public Declare Function iluColorsUsed Lib "ilu" Alias "iluColoursUsed" () As Long
  142. Public Declare Function iluSwapColors Lib "ilu" Alias "iluSwapColours" () As Byte
  143. Public Declare Function iluReplaceColor Lib "ilu" Alias "iluReplaceColour" (ByVal Red As Byte, ByVal Green As Byte, ByVal Blue As Byte, ByVal Tolerance As Single) As Byte
  144. Public Declare Function iluScaleColors Lib "ilu" Alias "iluScaleColours" (ByVal r As Single, ByVal g As Single, ByVal b As Single) As Byte