├── .gitignore ├── LICENSE ├── README.md └── Source ├── ImageMagick.CTypes.pas ├── ImageMagick.Wand.pas ├── ImageMagick.pas ├── README.md ├── artifact.inc ├── cache.inc ├── cache_view.inc ├── compare.inc ├── constitute.inc ├── draw.inc ├── drawing_wand.inc ├── effect.inc ├── fx.inc ├── magick_attribute.inc ├── magick_image.inc ├── magick_type.inc ├── pixel.inc ├── pixel_iterator.inc ├── pixel_wand.inc ├── quantize.inc ├── semaphore.inc ├── statistic.inc └── type.inc /.gitignore: -------------------------------------------------------------------------------- 1 | # Uncomment these types if you want even more clean repository. But be careful. 2 | # It can make harm to an existing project source. Read explanations below. 3 | # 4 | # Resource files are binaries containing manifest, project icon and version info. 5 | # They can not be viewed as text or compared by diff-tools. Consider replacing them with .rc files. 6 | #*.res 7 | # 8 | # Type library file (binary). In old Delphi versions it should be stored. 9 | # Since Delphi 2009 it is produced from .ridl file and can safely be ignored. 10 | #*.tlb 11 | # 12 | # Diagram Portfolio file. Used by the diagram editor up to Delphi 7. 13 | # Uncomment this if you are not using diagrams or use newer Delphi version. 14 | #*.ddp 15 | # 16 | # Visual LiveBindings file. Added in Delphi XE2. 17 | # Uncomment this if you are not using LiveBindings Designer. 18 | #*.vlb 19 | # 20 | # Deployment Manager configuration file for your project. Added in Delphi XE2. 21 | # Uncomment this if it is not mobile development and you do not use remote debug feature. 22 | #*.deployproj 23 | # 24 | # C++ object files produced when C/C++ Output file generation is configured. 25 | # Uncomment this if you are not using external objects (zlib library for example). 26 | #*.obj 27 | # 28 | 29 | # Delphi compiler-generated binaries (safe to delete) 30 | *.exe 31 | *.dll 32 | *.bpl 33 | *.bpi 34 | *.dcp 35 | *.so 36 | *.apk 37 | *.drc 38 | *.map 39 | *.dres 40 | *.rsm 41 | *.tds 42 | *.dcu 43 | *.lib 44 | *.a 45 | *.o 46 | *.ocx 47 | 48 | # Delphi autogenerated files (duplicated info) 49 | *.cfg 50 | *.hpp 51 | *Resource.rc 52 | 53 | # Delphi local files (user-specific info) 54 | *.local 55 | *.identcache 56 | *.projdata 57 | *.tvsconfig 58 | *.dsk 59 | 60 | # Delphi history and backups 61 | __history/ 62 | __recovery/ 63 | *.~* 64 | 65 | # Castalia statistics file (since XE7 Castalia is distributed with Delphi) 66 | *.stat 67 | 68 | # Boss dependency manager vendor folder https://github.com/HashLoad/boss 69 | modules/ 70 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 LecturePress 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ImageMagick API for Delphi and Object Pascal 2 | ImageMagick library binding for Delphi (VCL and FMX) in Win32, Win64, Android and Linux apps 3 | 4 | Status : 5 | - Still under development to match ImageMagick 7.1.0-37 6 | - Not tested yet 7 | -------------------------------------------------------------------------------- /Source/ImageMagick.CTypes.pas: -------------------------------------------------------------------------------- 1 | { 2 | This file is part of the Free Pascal run time library. 3 | Copyright (c) 2004 by Marco van de Voort, member of the 4 | Free Pascal development team 5 | 6 | Implements C types for in header conversions 7 | 8 | See the file COPYING.FPC, included in this distribution, 9 | for details about the copyright. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 14 | 15 | 16 | **********************************************************************} 17 | 18 | unit ImageMagick.CTypes; 19 | 20 | {$ifdef FPC} 21 | {$inline on} 22 | {$define dummy} 23 | {$endif} 24 | 25 | interface 26 | {$IFDEF LINUX} 27 | type 28 | cint8 = shortint; pcint8 = ^cint8; 29 | cuint8 = byte; pcuint8 = ^cuint8; 30 | cchar = cint8; pcchar = ^cchar; 31 | cschar = cint8; pcschar = ^cschar; 32 | cuchar = cuint8; pcuchar = ^cuchar; 33 | 34 | cint16 = smallint; pcint16 = ^cint16; 35 | cuint16 = word; pcuint16 = ^cuint16; 36 | cshort = cint16; pcshort = ^cshort; 37 | csshort = cint16; pcsshort = ^csshort; 38 | cushort = cuint16; pcushort = ^cushort; 39 | 40 | cint32 = longint; pcint32 = ^cint32; 41 | cuint32 = longword; pcuint32 = ^cuint32; 42 | cint = cint32; pcint = ^cint; { minimum range is : 32-bit } 43 | csint = cint32; pcsint = ^csint; { minimum range is : 32-bit } 44 | cuint = cuint32; pcuint = ^cuint; { minimum range is : 32-bit } 45 | csigned = cint; pcsigned = ^csigned; 46 | cunsigned = cuint; pcunsigned = ^cunsigned; 47 | 48 | cint64 = int64; pcint64 = ^cint64; 49 | // cuint64 = qword; pcuint64 = ^cuint64; 50 | clonglong = cint64; pclonglong = ^clonglong; 51 | cslonglong = cint64; pcslonglong = ^cslonglong; 52 | // culonglong = cuint64; pculonglong = ^culonglong; 53 | 54 | cbool = longbool; pcbool = ^cbool; 55 | 56 | {$ifdef cpu64} 57 | clong = int64; pclong = ^clong; 58 | cslong = int64; pcslong = ^cslong; 59 | culong = qword; pculong = ^culong; 60 | {$else} 61 | clong = longint; pclong = ^clong; 62 | cslong = longint; pcslong = ^cslong; 63 | culong = cardinal; pculong = ^culong; 64 | {$endif} 65 | 66 | {$ifndef FPUNONE} 67 | cfloat = single; pcfloat = ^cfloat; 68 | cdouble = double; pcdouble = ^cdouble; 69 | clongdouble = extended; pclongdouble = ^clongdouble; 70 | {$endif} 71 | csize_t = int64; pcsize_t = ^clong; 72 | 73 | {$ENDIF} 74 | 75 | {$IFDEF MSWINDOWS} 76 | {$ifdef unix} 77 | uses unixtype; 78 | {$i aliasctp.inc} 79 | {$else} 80 | 81 | type 82 | {$ifndef FPC} 83 | qword = int64; // Keep h2pas "uses ctypes" headers working with delphi. 84 | ptruint = cardinal; 85 | pptruint = ^ptruint; 86 | {$endif} 87 | 88 | { the following type definitions are compiler dependant } 89 | { and system dependant } 90 | 91 | cint8 = shortint; pcint8 = ^cint8; 92 | cuint8 = byte; pcuint8 = ^cuint8; 93 | cchar = cint8; pcchar = ^cchar; 94 | cschar = cint8; pcschar = ^cschar; 95 | cuchar = cuint8; pcuchar = ^cuchar; 96 | 97 | cint16 = smallint; pcint16 = ^cint16; 98 | cuint16 = word; pcuint16 = ^cuint16; 99 | cshort = cint16; pcshort = ^cshort; 100 | csshort = cint16; pcsshort = ^csshort; 101 | cushort = cuint16; pcushort = ^cushort; 102 | 103 | cint32 = longint; pcint32 = ^cint32; 104 | cuint32 = longword; pcuint32 = ^cuint32; 105 | 106 | cint64 = int64; pcint64 = ^cint64; 107 | cuint64 = qword; pcuint64 = ^cuint64; 108 | clonglong = cint64; pclonglong = ^clonglong; 109 | cslonglong = cint64; pcslonglong = ^cslonglong; 110 | culonglong = cuint64; pculonglong = ^culonglong; 111 | 112 | cbool = longbool; pcbool = ^cbool; 113 | 114 | {$if defined(cpu64) and not(defined(win64) and defined(cpux86_64))} 115 | cint = cint32; pcint = ^cint; { minimum range is : 32-bit } 116 | csint = cint32; pcsint = ^csint; { minimum range is : 32-bit } 117 | cuint = cuint32; pcuint = ^cuint; { minimum range is : 32-bit } 118 | clong = int64; pclong = ^clong; 119 | cslong = int64; pcslong = ^cslong; 120 | culong = qword; pculong = ^culong; 121 | {$elseif defined(cpu16)} 122 | { 16-bit int sizes checked against Borland C++ 3.1 and Open Watcom 1.9 } 123 | cint = cint16; pcint = ^cint; 124 | csint = cint16; pcsint = ^csint; 125 | cuint = cuint16; pcuint = ^cuint; 126 | clong = longint; pclong = ^clong; 127 | cslong = longint; pcslong = ^cslong; 128 | culong = cardinal; pculong = ^culong; 129 | {$else} 130 | cint = cint32; pcint = ^cint; { minimum range is : 32-bit } 131 | csint = cint32; pcsint = ^csint; { minimum range is : 32-bit } 132 | cuint = cuint32; pcuint = ^cuint; { minimum range is : 32-bit } 133 | clong = longint; pclong = ^clong; 134 | cslong = longint; pcslong = ^cslong; 135 | culong = cardinal; pculong = ^culong; 136 | {$endif} 137 | 138 | csigned = cint; pcsigned = ^csigned; 139 | cunsigned = cuint; pcunsigned = ^cunsigned; 140 | 141 | csize_t = ptruint; pcsize_t = pptruint; 142 | 143 | // Kylix compat types 144 | u_long = culong; 145 | u_short = cushort; 146 | coff_t = clong; 147 | 148 | {$ifndef FPUNONE} 149 | cfloat = single; pcfloat = ^cfloat; 150 | cdouble = double; pcdouble = ^cdouble; 151 | {$endif} 152 | {$endif} 153 | 154 | {$if defined(win64) or defined(wince) or defined(android)} 155 | {$define longdouble_is_double} 156 | {$endif} 157 | 158 | {$if defined(linux) and (defined(cpupowerpc) or defined(cpuarm))} 159 | {$define longdouble_is_double} 160 | {$ifend} 161 | 162 | {$if defined(darwin) and defined(cpuaarch64)} 163 | {$define longdouble_is_double} 164 | {$ifend} 165 | 166 | {$ifndef FPUNONE} 167 | {$if defined(longdouble_is_double) or not defined(FPC_HAS_CEXTENDED)} 168 | clongdouble=double; 169 | {$else} 170 | {$if defined(cpui8086) or defined(cpui386) or defined(cpux86_64) or defined(cpuavr)} 171 | clongdouble = cextended; 172 | {$else} 173 | {$define longdouble_assignment_overload_real128} 174 | clongdouble = packed array [0..15] of byte; 175 | {$ifend} 176 | {$ifend} 177 | Pclongdouble=^clongdouble; 178 | 179 | {$ifdef longdouble_assignment_overload_real128} 180 | {Non-x86 typically doesn't have extended. To be fixed once this changes.} 181 | operator := (const v:clongdouble) r:double;inline; 182 | operator := (const v:double) r:clongdouble;inline; 183 | {$ifdef dummy} 184 | operator +(const e:Double;const c:clongdouble) r:Double;inline; 185 | operator +(const c:clongdouble;const e:Double) r:Double;inline; 186 | operator -(const e:Double;const c:clongdouble) r:Double;inline; 187 | operator -(const c:clongdouble;const e:Double) r:Double;inline; 188 | operator *(const e:Double;const c:clongdouble) r:Double;inline; 189 | operator *(const c:clongdouble;const e:Double) r:Double;inline; 190 | operator /(const e:Double;const c:clongdouble) r:Double;inline; 191 | operator /(const c:clongdouble;const e:Double) r:Double;inline; 192 | operator =(const e:Double;const c:clongdouble) r:boolean;inline; 193 | operator =(const c:clongdouble;const e:Double) r:boolean;inline; 194 | operator <(const e:Double;const c:clongdouble) r:boolean;inline; 195 | operator <(const c:clongdouble;const e:Double) r:boolean;inline; 196 | operator >(const e:Double;const c:clongdouble) r:boolean;inline; 197 | operator >(const c:clongdouble;const e:Double) r:boolean;inline; 198 | operator >=(const e:Double;const c:clongdouble) r:boolean;inline; 199 | operator >=(const c:clongdouble;const e:Double) r:boolean;inline; 200 | operator <=(const e:Double;const c:clongdouble) r:boolean;inline; 201 | operator <=(const c:clongdouble;const e:Double) r:boolean;inline; 202 | {$endif dummy} 203 | {$endif} 204 | {$endif FPUNONE} 205 | 206 | implementation 207 | 208 | {$ifndef FPUNONE} 209 | 210 | {$ifdef longdouble_assignment_overload_real128} 211 | 212 | {$ifdef ENDIAN_LITTLE} 213 | const r128_mantissa_ofs=0; 214 | r128_exponent_ofs=14; 215 | {$else} 216 | const r128_mantissa_ofs=2; 217 | r128_exponent_ofs=0; 218 | {$ifdef FPC_REQUIRES_PROPER_ALIGNMENT} 219 | {$define USE_UNALIGNED} 220 | {$endif FPC_REQUIRES_PROPER_ALIGNMENT} 221 | {$endif} 222 | 223 | operator := (const v:clongdouble) r:double; 224 | var 225 | exp : word; 226 | mant : qword; 227 | is_neg : boolean; 228 | begin 229 | is_neg:=(pword(@v[r128_exponent_ofs])^and $8000)<>0; 230 | exp:=((Pword(@v[r128_exponent_ofs])^and $7fff)-$4000)+$400; 231 | if is_neg then 232 | exp:=exp+$800; 233 | {$ifdef USE_UNALIGNED} 234 | mant:=unaligned(Pqword(@v[r128_mantissa_ofs])^); 235 | {$else not USE_UNALIGNED} 236 | mant:=Pqword(@v[r128_mantissa_ofs])^; 237 | {$endif not USE_UNALIGNED} 238 | qword(r):=(qword(exp) shl 52) or 239 | (mant shr 12); 240 | end; 241 | 242 | operator := (const v:double) r:clongdouble; 243 | var 244 | is_neg : boolean; 245 | exp : word; 246 | begin 247 | is_neg:=(qword(v) shr 63) <> 0; 248 | exp:=$4000 + ((qword(v) shr 52) and $7ff) -$400; 249 | if is_neg then 250 | exp:=exp+$8000; 251 | Pword(@r[r128_exponent_ofs])^:=exp; 252 | {$ifdef USE_UNALIGNED} 253 | unaligned(Pqword(@r[r128_mantissa_ofs])^):=qword(v) shl 12; 254 | Pword(@r[r128_mantissa_ofs+8])^:=0; 255 | Pword(@r[r128_mantissa_ofs+10])^:=0; 256 | {$else not USE_UNALIGNED} 257 | Pqword(@r[r128_mantissa_ofs])^:=qword(v) shl 12; 258 | Pcardinal(@r[r128_mantissa_ofs+8])^:=0; 259 | {$endif not USE_UNALIGNED} 260 | Pword(@r[r128_mantissa_ofs+12])^:=0; 261 | end; 262 | 263 | {$ifdef dummy} 264 | 265 | // There is no record with a value field in this case 266 | 267 | operator +(const e:Double;const c:clongdouble) r:Double;inline; 268 | begin 269 | r:=e+double(c); 270 | end; 271 | 272 | operator +(const c:clongdouble;const e:Double) r:Double;inline; 273 | begin 274 | r:=double(c)+e; 275 | end; 276 | 277 | operator -(const e:Double;const c:clongdouble) r:Double;inline; 278 | begin 279 | r:=e-double(c); 280 | end; 281 | 282 | operator -(const c:clongdouble;const e:Double) r:Double;inline; 283 | begin 284 | r:=double(c)-e; 285 | end; 286 | 287 | operator *(const e:Double;const c:clongdouble) r:Double;inline; 288 | begin 289 | r:=e*double(c); 290 | end; 291 | 292 | operator *(const c:clongdouble;const e:Double) r:Double;inline; 293 | begin 294 | r:=double(c)*e; 295 | end; 296 | 297 | operator /(const e:Double;const c:clongdouble) r:Double;inline; 298 | begin 299 | r:=e/double(c); 300 | end; 301 | 302 | operator /(const c:clongdouble;const e:Double) r:Double;inline; 303 | begin 304 | r:=double(c)/e; 305 | end; 306 | 307 | operator =(const e:Double;const c:clongdouble) r:boolean;inline; 308 | begin 309 | r:=e=double(c); 310 | end; 311 | 312 | operator =(const c:clongdouble;const e:Double) r:boolean;inline; 313 | begin 314 | r:=double(c)=e; 315 | end; 316 | 317 | operator <(const e:Double;const c:clongdouble) r:boolean;inline; 318 | begin 319 | r:=e(const e:Double;const c:clongdouble) r:boolean;inline; 328 | begin 329 | r:=e>double(c); 330 | end; 331 | 332 | operator >(const c:clongdouble;const e:Double) r:boolean;inline; 333 | begin 334 | r:=double(c)>e; 335 | end; 336 | 337 | operator >=(const e:Double;const c:clongdouble) r:boolean;inline; 338 | begin 339 | r:=e>=double(c); 340 | end; 341 | 342 | operator >=(const c:clongdouble;const e:Double) r:boolean;inline; 343 | begin 344 | r:=double(c)>=e; 345 | end; 346 | 347 | operator <=(const e:Double;const c:clongdouble) r:boolean;inline; 348 | begin 349 | r:=e<=double(c); 350 | end; 351 | 352 | operator <=(const c:clongdouble;const e:Double) r:boolean;inline; 353 | begin 354 | r:=double(c)<=e; 355 | end; 356 | {$endif} 357 | {$endif} 358 | {$endif FPUNONE} 359 | 360 | {$ELSE} 361 | implementation 362 | {$ENDIF} 363 | end. 364 | -------------------------------------------------------------------------------- /Source/ImageMagick.Wand.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LecturePress/ImageMagick-API-Delphi/c4925427d7ad8b556efe3bc06f6b6c7ad2a3ffd2/Source/ImageMagick.Wand.pas -------------------------------------------------------------------------------- /Source/ImageMagick.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LecturePress/ImageMagick-API-Delphi/c4925427d7ad8b556efe3bc06f6b6c7ad2a3ffd2/Source/ImageMagick.pas -------------------------------------------------------------------------------- /Source/README.md: -------------------------------------------------------------------------------- 1 | 2 | ImageMagick-Delphi 3 | -------------------------------------------------------------------------------- /Source/artifact.inc: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright @ 2000 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. You may 6 | obtain a copy of the License at 7 | 8 | https://imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | MagickCore artifact methods. 16 | */ 17 | 18 | //extern MagickExport 19 | RemoveImageArtifact: function(image: PImage; const artifact: PAnsiChar): PAnsiChar; cdecl; 20 | 21 | GetNextImageArtifact(const image: PImage): PAnsiChar; cdecl; 22 | GetImageArtifact(const image: PImage; const artifact: PAnsiChar): PAnsiChar; cdecl; 23 | 24 | CloneImageArtifacts: function(image: PImage; const clone_image: PImage): MagickBooleanType; cdecl; 25 | DefineImageArtifact: function(image: PImage; const artifact: PAnsiChar): MagickBooleanType; cdecl; 26 | DeleteImageArtifact: function(image: PImage; const artifact: PAnsiChar): MagickBooleanType; cdecl; 27 | SetImageArtifact: function(image: PImage; const artifact: PAnsiChar; const value: PAnsiChar): MagickBooleanType; cdecl; 28 | 29 | DestroyImageArtifacts: procedure(image: PImage); cdecl; 30 | ResetImageArtifactIterator: procedure(const image: PImage); cdecl; 31 | 32 | -------------------------------------------------------------------------------- /Source/cache.inc: -------------------------------------------------------------------------------- 1 | { 2 | Copyright 1999-2009 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | MagickCore cache methods. 17 | } 18 | { 19 | Based on ImageMagick 6.5.7 20 | } 21 | 22 | //#include "magick/blob.h" 23 | 24 | {extern MagickExport const IndexPacket 25 | *GetVirtualIndexQueue(const Image *); 26 | 27 | extern MagickExport const PixelPacket 28 | *GetVirtualPixels(const Image *,const long,const long,const unsigned long, 29 | const unsigned long,ExceptionInfo *), 30 | *GetVirtualPixelQueue(const Image *); 31 | 32 | extern MagickExport IndexPacket 33 | *GetAuthenticIndexQueue(const Image *); 34 | 35 | extern MagickExport MagickBooleanType 36 | GetOneVirtualMagickPixel(const Image *,const long,const long, 37 | MagickPixelPacket *,ExceptionInfo *), 38 | GetOneVirtualPixel(const Image *,const long,const long,PixelPacket *, 39 | ExceptionInfo *), 40 | GetOneVirtualMethodPixel(const Image *,const VirtualPixelMethod,const long, 41 | const long,PixelPacket *,ExceptionInfo *), 42 | GetOneAuthenticPixel(Image *,const long,const long,PixelPacket *, 43 | ExceptionInfo *), 44 | InstantiateCacheComponent(void), 45 | PersistPixelCache(Image *,const char *,const MagickBooleanType, 46 | MagickOffsetType *,ExceptionInfo *), 47 | SyncAuthenticPixels(Image *,ExceptionInfo *); 48 | 49 | extern MagickExport MagickSizeType 50 | GetImageExtent(const Image *);} 51 | 52 | //extern MagickExport PixelPacket 53 | var 54 | GetAuthenticPixels: function(_image: PImage; const x, y: clong; 55 | const columns, rows: culong; exception: PExceptionInfo 56 | ): PPixelPacket; cdecl; 57 | // *GetAuthenticPixelQueue(const Image *), 58 | // *QueueAuthenticPixels(Image *,const long,const long,const unsigned long, 59 | // const unsigned long,ExceptionInfo *); 60 | 61 | {extern MagickExport VirtualPixelMethod 62 | GetPixelCacheVirtualMethod(const Image *), 63 | SetPixelCacheVirtualMethod(const Image *,const VirtualPixelMethod); 64 | 65 | extern MagickExport void 66 | DestroyCacheFaclity(void);} 67 | 68 | -------------------------------------------------------------------------------- /Source/cache_view.inc: -------------------------------------------------------------------------------- 1 | { 2 | Copyright 1999-2005 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | ImageMagick Cache View Methods. 17 | } 18 | 19 | 20 | type 21 | VirtualPixelMethod = ( 22 | UndefinedVirtualPixelMethod, 23 | BackgroundVirtualPixelMethod, 24 | DitherVirtualPixelMethod, 25 | EdgeVirtualPixelMethod, 26 | MirrorVirtualPixelMethod, 27 | RandomVirtualPixelMethod, 28 | TileVirtualPixelMethod, 29 | TransparentVirtualPixelMethod, 30 | MaskVirtualPixelMethod, 31 | BlackVirtualPixelMethod, 32 | GrayVirtualPixelMethod, 33 | WhiteVirtualPixelMethod, 34 | HorizontalTileVirtualPixelMethod, 35 | VerticalTileVirtualPixelMethod, 36 | HorizontalTileEdgeVirtualPixelMethod, 37 | VerticalTileEdgeVirtualPixelMethod, 38 | CheckerTileVirtualPixelMethod 39 | ); 40 | 41 | type 42 | PNexusInfo = ^NexusInfo; 43 | PPNexusInfo = ^PNexusInfo; 44 | 45 | NexusInfo = record 46 | mapped: MagickBooleanType; 47 | region: RectangleInfo; 48 | length: MagickSizeType; 49 | cache, pixels: ^Quantum; 50 | authentic_pixel_cache: MagickBooleanType; 51 | metacontent: Pointer; 52 | signature: culong; 53 | virtual_nexus: PNexusInfo; 54 | end; 55 | 56 | 57 | type 58 | CacheView = record 59 | image: PImage; 60 | 61 | virtual_pixel_method: VirtualPixelMethod; 62 | 63 | number_threads: culong; 64 | 65 | nexus_info: PPNexusInfo; 66 | 67 | debug: MagickBooleanType; 68 | 69 | signature: culong; 70 | end; 71 | 72 | PCacheView = ^CacheView; 73 | 74 | {extern MagickExport const PixelPacket 75 | *AcquireCacheView(const ViewInfo *,const long,const long,const unsigned long, 76 | const unsigned long,ExceptionInfo *); 77 | 78 | extern MagickExport IndexPacket 79 | *GetCacheViewIndexes(const ViewInfo *); 80 | 81 | extern MagickExport MagickBooleanType 82 | SyncCacheView(ViewInfo *); 83 | 84 | extern MagickExport PixelPacket 85 | *GetCacheViewPixels(const ViewInfo *), 86 | *GetCacheView(ViewInfo *,const long,const long,const unsigned long, 87 | const unsigned long), 88 | *SetCacheView(ViewInfo *,const long,const long,const unsigned long, 89 | const unsigned long); 90 | 91 | extern MagickExport ViewInfo 92 | *OpenCacheView(Image *); 93 | 94 | extern MagickExport void 95 | CloseCacheView(ViewInfo *);} 96 | 97 | -------------------------------------------------------------------------------- /Source/compare.inc: -------------------------------------------------------------------------------- 1 | { 2 | Copyright 1999-2005 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | ImageMagick image compare methods. 17 | } 18 | 19 | //#include "magick/image.h" 20 | 21 | type 22 | MetricType = ( 23 | UndefinedErrorMetric, 24 | AbsoluteErrorMetric, 25 | FuzzErrorMetric, 26 | MeanAbsoluteErrorMetric, 27 | MeanErrorPerPixelErrorMetric, 28 | MeanSquaredErrorMetric, 29 | NormalizedCrossCorrelationErrorMetric, 30 | PeakAbsoluteErrorMetric, 31 | PeakSignalToNoiseRatioErrorMetric, 32 | PerceptualHashErrorMetric, 33 | RootMeanSquaredErrorMetric, 34 | StructuralSimilarityErrorMetric, 35 | StructuralDissimilarityErrorMetric 36 | ); 37 | 38 | {extern MagickExport Image 39 | *CompareImageChannels(Image *,const Image *,const ChannelType, 40 | const MetricType,double *,ExceptionInfo *), 41 | *CompareImages(Image *,const Image *,const MetricType,double *, 42 | ExceptionInfo *); 43 | 44 | extern MagickExport MagickBooleanType 45 | CompareImageCommand(ImageInfo *,int,char **,char **,ExceptionInfo *), 46 | GetImageChannelDistortion(Image *,const Image *,const ChannelType, 47 | const MetricType,double *,ExceptionInfo *), 48 | GetImageDistortion(Image *,const Image *,const MetricType,double *, 49 | ExceptionInfo *), 50 | IsImagesEqual(Image *,const Image *);} 51 | 52 | -------------------------------------------------------------------------------- /Source/constitute.inc: -------------------------------------------------------------------------------- 1 | { 2 | Copyright 1999-2005 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | ImageMagick image constitute methods. 17 | } 18 | 19 | type 20 | StorageType = ( 21 | UndefinedPixel, 22 | CharPixel, 23 | DoublePixel, 24 | FloatPixel, 25 | LongPixel, 26 | LongLongPixel, 27 | QuantumPixel, 28 | ShortPixel 29 | ); 30 | 31 | {extern MagickExport Image 32 | *ConstituteImage(const unsigned long,const unsigned long,const char *, 33 | const StorageType,const void *,ExceptionInfo *), 34 | *PingImage(const ImageInfo *,ExceptionInfo *), 35 | *ReadImage(const ImageInfo *,ExceptionInfo *), 36 | *ReadInlineImage(const ImageInfo *,const char *,ExceptionInfo *); 37 | 38 | extern MagickExport MagickBooleanType 39 | WriteImage(const ImageInfo *,Image *), 40 | WriteImages(const ImageInfo *,Image *,const char *,ExceptionInfo *); 41 | 42 | extern MagickExport void 43 | DestroyConstitute(void);} 44 | 45 | 46 | -------------------------------------------------------------------------------- /Source/draw.inc: -------------------------------------------------------------------------------- 1 | { 2 | Copyright 1999-2005 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | ImageMagick drawing methods. 17 | } 18 | 19 | //#include "magick/type.h" 20 | 21 | type 22 | AlignType = ( 23 | UndefinedAlign, 24 | LeftAlign, 25 | CenterAlign, 26 | RightAlign 27 | ); 28 | 29 | type 30 | ClipPathUnits = ( 31 | UndefinedPathUnits, 32 | UserSpace, 33 | UserSpaceOnUse, 34 | ObjectBoundingBox 35 | ); 36 | 37 | type 38 | DecorationType = ( 39 | UndefinedDecoration, 40 | NoDecoration, 41 | UnderlineDecoration, 42 | OverlineDecoration, 43 | LineThroughDecoration 44 | ); 45 | 46 | type 47 | DirectionType = ( 48 | UndefinedDirection, 49 | RightToLeftDirection, 50 | LeftToRightDirection 51 | ); 52 | 53 | type 54 | FillRule = ( 55 | UndefinedRule, 56 | //#undef EvenOddRule 57 | EvenOddRule, 58 | NonZeroRule 59 | ); 60 | 61 | type 62 | GradientType = ( 63 | UndefinedGradient, 64 | LinearGradient, 65 | RadialGradient 66 | ); 67 | 68 | type 69 | LineCap = ( 70 | UndefinedCap, 71 | ButtCap, 72 | RoundCap, 73 | SquareCap 74 | ); 75 | 76 | type 77 | LineJoin = ( 78 | UndefinedJoin, 79 | MiterJoin, 80 | RoundJoin, 81 | BevelJoin 82 | ); 83 | 84 | type 85 | PaintMethod = ( 86 | UndefinedMethod, 87 | PointMethod, 88 | ReplaceMethod, 89 | FloodfillMethod, 90 | FillToBorderMethod, 91 | ResetMethod 92 | ); 93 | 94 | type 95 | PrimitiveType = ( 96 | UndefinedPrimitive, 97 | AlphaPrimitive, 98 | ArcPrimitive, 99 | BezierPrimitive, 100 | CirclePrimitive, 101 | ColorPrimitive, 102 | EllipsePrimitive, 103 | ImagePrimitive, 104 | LinePrimitive, 105 | PathPrimitive, 106 | PointPrimitive, 107 | PolygonPrimitive, 108 | PolylinePrimitive, 109 | RectanglePrimitive, 110 | RoundRectanglePrimitive, 111 | TextPrimitive 112 | ); 113 | 114 | type 115 | ReferenceType = ( 116 | UndefinedReference, 117 | GradientReference 118 | ); 119 | 120 | type 121 | SpreadMethod = ( 122 | UndefinedSpread, 123 | PadSpread, 124 | ReflectSpead, 125 | RepeatSpread 126 | ); 127 | 128 | type 129 | ComplianceType = ( 130 | UndefinedCompliance, 131 | NoCompliance = $0000, 132 | CSSCompliance = $0001, 133 | SVGCompliance = $0001, 134 | X11Compliance = $0002, 135 | XPMCompliance = $0004, 136 | MVGCompliance = $0008, 137 | AllCompliance = $7fffffff 138 | ); 139 | 140 | type 141 | StopInfo = record 142 | color: PixelInfo; 143 | offfset: double; 144 | end; 145 | PStopInfo = ^StopInfo; 146 | 147 | type 148 | GradientInfo = record 149 | type_: GradientType; 150 | bounding_box: RectangleInfo; 151 | gradient_vector: SegmentInfo; 152 | stops: PStopInfo; 153 | number_stops: culong; 154 | spread: SpreadMethod; 155 | debug: MagickBooleanType; 156 | center, radii: PointInfo; 157 | radius, angle: double; 158 | signature: culong; 159 | end; 160 | 161 | 162 | type 163 | PElementReference = ^ElementReference; 164 | ElementReference = record 165 | id: PAnsiChar; 166 | type_: ReferenceType; 167 | gradient: GradientInfo; 168 | previous, next: PElementReference; 169 | signature: culong; 170 | end; 171 | 172 | type 173 | DrawInfo = record 174 | primitive, geometry: PAnsiChar; 175 | 176 | viewbox: RectangleInfo; 177 | 178 | affine: AffineMatrix; 179 | 180 | // gravity: GravityType; 181 | 182 | fill, stroke, undercolor, border_color: PixelInfo; 183 | 184 | fill_pattern, stroke_pattern: PImage; 185 | 186 | stroke_width: double; 187 | 188 | gradient: GradientInfo; 189 | 190 | stroke_antialias, text_antialias: MagickBooleanType; 191 | 192 | fill_rule: FillRule; 193 | 194 | linecap_: LineCap; 195 | 196 | linejoin_: LineJoin; 197 | 198 | miterlimit: culong; 199 | 200 | dash_offset: double; 201 | 202 | decorate: DecorationType; 203 | 204 | compose: CompositeOperator; 205 | 206 | text, font, metrics, family: PAnsiChar; 207 | 208 | face: culong; 209 | 210 | style: StyleType; 211 | 212 | stretch: StretchType; 213 | 214 | weight: culong; 215 | 216 | encoding: PAnsiChar; 217 | 218 | pointsize: double; 219 | 220 | density: PAnsiChar; 221 | 222 | align: AlignType; 223 | 224 | gravity: GravityType; 225 | 226 | server_name: PAnsiChar; 227 | 228 | dash_pattern: Pdouble; 229 | 230 | clip_mask: PAnsiChar; 231 | 232 | bounds: SegmentInfo; 233 | 234 | clip_units: ClipPathUnits; 235 | 236 | alpha: Quantum; 237 | 238 | render: MagickBooleanType; 239 | 240 | element_reference: ElementReference; 241 | 242 | kerning, interword_spacing, interline_spacing: double; 243 | 244 | direction: DirectionType; 245 | 246 | debug: MagickBooleanType; 247 | 248 | signature: culong; 249 | 250 | fill_alpha, stroke_alpha: double; 251 | 252 | clip_path: MagickBooleanType; 253 | 254 | clipping_mask: PImage; 255 | 256 | compliance: ComplianceType; 257 | 258 | composite_mask: PImage; 259 | 260 | id: PAnsiChar; 261 | 262 | end; 263 | 264 | PDrawInfo = ^DrawInfo; 265 | 266 | PPDrawInfo = ^PDrawInfo; 267 | 268 | 269 | type 270 | PrimitiveInfo = record 271 | point: PointInfo; 272 | 273 | coordinates: culong; 274 | 275 | primitive: PrimitiveType; 276 | 277 | method: PaintMethod; 278 | 279 | text: PAnsiChar; 280 | 281 | closed_subpath: MagickBooleanType; 282 | end; 283 | 284 | type 285 | TypeMetric = record 286 | pixels_per_em: PointInfo; 287 | 288 | ascent, 289 | descent, 290 | width, 291 | height, 292 | max_advance, 293 | underline_position, 294 | underline_thickness: double; 295 | 296 | bounds: SegmentInfo; 297 | 298 | origin: PointInfo; 299 | end; 300 | 301 | {extern MagickExport DrawInfo 302 | *CloneDrawInfo(const ImageInfo *,const DrawInfo *), 303 | *DestroyDrawInfo(DrawInfo *); 304 | 305 | extern MagickExport MagickBooleanType 306 | DrawAffineImage(Image *,const Image *,const AffineMatrix *), 307 | DrawClipPath(Image *,const DrawInfo *,const char *), 308 | DrawImage(Image *,const DrawInfo *), 309 | DrawPatternPath(Image *,const DrawInfo *,const char *,Image **), 310 | DrawPrimitive(Image *,const DrawInfo *,const PrimitiveInfo *); 311 | 312 | extern MagickExport void 313 | GetAffineMatrix(AffineMatrix *), 314 | GetDrawInfo(const ImageInfo *,DrawInfo *);} 315 | 316 | 317 | -------------------------------------------------------------------------------- /Source/drawing_wand.inc: -------------------------------------------------------------------------------- 1 | { 2 | Copyright 1999-2005 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | ImageMagick drawing wand API. 17 | } 18 | 19 | { 20 | Declaration from drawing-wand.c 21 | } 22 | type 23 | PathOperation = ( 24 | PathDefaultOperation, 25 | PathCloseOperation, // Z|z (none) */ 26 | PathCurveToOperation, // C|c (x1 y1 x2 y2 x y)+ */ 27 | PathCurveToQuadraticBezierOperation, // Q|q (x1 y1 x y)+ */ 28 | PathCurveToQuadraticBezierSmoothOperation, // T|t (x y)+ */ 29 | PathCurveToSmoothOperation, // S|s (x2 y2 x y)+ */ 30 | PathEllipticArcOperation, // A|a (rx ry x-axis-rotation large-arc-flag sweep-flag x y)+ */ 31 | PathLineToHorizontalOperation, // H|h x+ */ 32 | PathLineToOperation, // L|l (x y)+ */ 33 | PathLineToVerticalOperation, // V|v y+ */ 34 | PathMoveToOperation // M|m (x y)+ */ 35 | ); 36 | 37 | type 38 | PathMode = ( 39 | DefaultPathMode, 40 | AbsolutePathMode, 41 | RelativePathMode 42 | ); 43 | 44 | DrawingWand = record 45 | id: culong; 46 | 47 | name: array[0..MaxTextExtent] of Char; 48 | 49 | { Support structures } 50 | 51 | image: PImage; 52 | 53 | exception: ExceptionInfo; 54 | 55 | { MVG output string and housekeeping } 56 | 57 | mvg: PAnsiChar; // MVG data 58 | 59 | mvg_alloc, // total allocated memory 60 | mvg_length: culong; // total MVG length 61 | 62 | mvg_width: culong; // current line width 63 | 64 | { Pattern support } 65 | 66 | pattern_id: PAnsiChar; 67 | 68 | pattern_bounds: RectangleInfo; 69 | 70 | pattern_offset: culong; 71 | 72 | { Graphic wand } 73 | 74 | index: culong; // array index 75 | 76 | graphic_context: PPDrawInfo; 77 | 78 | filter_off: MagickBooleanType; // true if not filtering attributes 79 | 80 | { Pretty-printing depth } 81 | 82 | indent_depth: culong; // number of left-hand pad characters 83 | 84 | { Path operation support } 85 | 86 | path_operation: PathOperation; 87 | 88 | path_mode: PathMode; 89 | 90 | destroy, 91 | debug: MagickBooleanType; 92 | 93 | signature: culong; 94 | end; 95 | 96 | PDrawingWand = ^DrawingWand; 97 | 98 | const x = 9; 99 | 100 | var 101 | DrawGetTextAlignment: function(const wand: PDrawingWand): AlignType; cdecl; 102 | 103 | DrawGetClipPath: function(const wand: PDrawingWand): PAnsiChar; cdecl; 104 | DrawGetException: function(const wand: PDrawingWand; severity: PExceptionType): PAnsiChar; cdecl; 105 | DrawGetFont: function(const wand: PDrawingWand): PAnsiChar; cdecl; 106 | DrawGetFontFamily: function(const wand: PDrawingWand): PAnsiChar; cdecl; 107 | DrawGetTextEncoding: function(const wand: PDrawingWand): PAnsiChar; cdecl; 108 | DrawGetVectorGraphics: function(const wand: PDrawingWand): PAnsiChar; cdecl; 109 | 110 | DrawGetClipUnits: function(const wand: PDrawingWand): ClipPathUnits; cdecl; 111 | 112 | DrawGetTextDecoration: function(const wand: PDrawingWand): DecorationType; cdecl; 113 | 114 | DrawGetFillAlpha: function(const wand: PDrawingWand): double; cdecl; 115 | DrawGetFontSize: function(const wand: PDrawingWand): double; cdecl; 116 | DrawGetStrokeDashArray: function(const wand: PDrawingWand; number_elements: culong): PDouble; cdecl; 117 | DrawGetStrokeDashOffset: function(const wand: PDrawingWand): double; cdecl; 118 | DrawGetStrokeAlpha: function(const wand: PDrawingWand): double; cdecl; 119 | DrawGetStrokeWidth: function(const wand: PDrawingWand): double; cdecl; 120 | 121 | PeekDrawingWand: function(const wand: PDrawingWand): PDrawInfo; cdecl; 122 | 123 | CloneDrawingWand: function(const wand: PDrawingWand): PDrawingWand; cdecl; 124 | DestroyDrawingWand: function(wand: PDrawingWand): PDrawingWand; cdecl; 125 | { Sem documenta 126 | function DrawAllocateWand(const DrawInfo *,Image *): PDrawingWand; cdecl; external WandExport; 127 | } 128 | NewDrawingWand: function: PDrawingWand; cdecl; 129 | 130 | DrawGetClipRule: function(const wand: PDrawingWand): FillRule; cdecl; 131 | DrawGetFillRule: function(const wand: PDrawingWand): FillRule; cdecl; 132 | 133 | DrawGetGravity: function(const wand: PDrawingWand): GravityType; cdecl; 134 | 135 | DrawGetStrokeLineCap: function(const wand: PDrawingWand): LineCap; cdecl; 136 | 137 | DrawGetStrokeLineJoin: function(const wand: PDrawingWand): LineJoin; cdecl; 138 | 139 | DrawClearException: function(wand: PDrawingWand): MagickBooleanType; cdecl; 140 | DrawComposite: function(wand: PDrawingWand; const compose: CompositeOperator; const x, y, width, height: double; magick_wand: PMagickWand): MagickBooleanType; cdecl; 141 | DrawGetStrokeAntialias: function(const wand: PDrawingWand): MagickBooleanType; cdecl; 142 | DrawGetTextAntialias: function(const wand: PDrawingWand): MagickBooleanType; cdecl; 143 | DrawPopPattern: function(wand: PDrawingWand): MagickBooleanType; cdecl; 144 | DrawPushPattern: function(wand: PDrawingWand; const pattern_id: PAnsiChar; const x, y, width, height: double): MagickBooleanType; cdecl; 145 | DrawRender: function(wand: PDrawingWand): MagickBooleanType; cdecl; 146 | DrawSetClipPath: function(wand: PDrawingWand; const clip_path: PAnsiChar): MagickBooleanType; cdecl; 147 | DrawSetFillPatternURL: function(wand: PDrawingWand; const fill_url: PAnsiChar): MagickBooleanType; cdecl; 148 | DrawSetFont: function(wand: PDrawingWand; const font_name: PAnsiChar): MagickBooleanType; cdecl; 149 | DrawSetFontFamily: function(wand: PDrawingWand; const font_family: PAnsiChar): MagickBooleanType; cdecl; 150 | DrawSetStrokeDashArray: function(wand: PDrawingWand; const number_elements: culong; const dash_array: Pdouble): MagickBooleanType; cdecl; 151 | DrawSetStrokePatternURL: function(wand: PDrawingWand; const stroke_url: PAnsiChar): MagickBooleanType; cdecl; 152 | DrawSetVectorGraphics: function(wand: PDrawingWand; const xml: PAnsiChar): MagickBooleanType; cdecl; 153 | IsDrawingWand: function(const wand: PDrawingWand): MagickBooleanType; cdecl; 154 | PopDrawingWand: function(wand: PDrawingWand): MagickBooleanType; cdecl; 155 | PushDrawingWand: function(wand: PDrawingWand): MagickBooleanType; cdecl; 156 | 157 | DrawGetFontStretch: function(const wand: PDrawingWand): StretchType; cdecl; 158 | 159 | DrawGetFontStyle: function(const wand: PDrawingWand): StyleType; cdecl; 160 | 161 | DrawGetFontWeight: function(const wand: PDrawingWand): culong; cdecl; 162 | DrawGetStrokeMiterLimit: function(const wand: PDrawingWand): culong; cdecl; 163 | 164 | ClearDrawingWand: procedure(wand: PDrawingWand); cdecl; 165 | DrawAffine: procedure(wand: PDrawingWand; const affine: PAffineMatrix); cdecl; 166 | DrawAnnotation: procedure(wand: PDrawingWand; const x, y: double; const text: PAnsiChar); cdecl; 167 | DrawArc: procedure(wand: PDrawingWand; const sx, sy, ex, ey, sd, ed: double); cdecl; 168 | DrawBezier: procedure(wand: PDrawingWand; const number_coordinates: culong; const coordinates: PPointInfo); cdecl; 169 | DrawCircle: procedure(wand: PDrawingWand; const ox, oy, px, py: double); cdecl; 170 | DrawColor: procedure(wand: PDrawingWand; const x, y: double; const paint_method: PaintMethod); cdecl; 171 | DrawComment: procedure(wand: PDrawingWand; const comment: PAnsiChar); cdecl; 172 | DrawEllipse: procedure(wand: PDrawingWand; const ox, oy, rx, ry, start, end_: double); cdecl; 173 | DrawGetFillColor: procedure(const wand: PDrawingWand; fill_color: PPixelWand); cdecl; 174 | DrawGetStrokeColor: procedure(const wand: PDrawingWand; stroke_color: PPixelWand); cdecl; 175 | DrawGetTextUnderColor: procedure(const wand: PDrawingWand; under_color: PPixelWand); cdecl; 176 | DrawLine: procedure(wand: PDrawingWand; const sx, sy, ex, ey: double); cdecl; 177 | DrawMatte: procedure(wand: PDrawingWand; const x, y: double; const paint_method: PaintMethod); cdecl; 178 | DrawPathClose: procedure(wand: PDrawingWand); cdecl; 179 | DrawPathCurveToAbsolute: procedure(wand: PDrawingWand; const x1, y1, x2, y2, x, y: double); cdecl; 180 | DrawPathCurveToRelative: procedure(wand: PDrawingWand; const x1, y1, x2, y2, x, y: double); cdecl; 181 | DrawPathCurveToQuadraticBezierAbsolute: procedure(wand: PDrawingWand; const x1, y1, x, y: double); cdecl; 182 | DrawPathCurveToQuadraticBezierRelative: procedure(wand: PDrawingWand; const x1, y1, x, y: double); cdecl; 183 | DrawPathCurveToQuadraticBezierSmoothAbsolute: procedure(wand: PDrawingWand; const x, y: double); cdecl; 184 | DrawPathCurveToQuadraticBezierSmoothRelative: procedure(wand: PDrawingWand; const x, y: double); cdecl; 185 | DrawPathCurveToSmoothAbsolute: procedure(wand: PDrawingWand; const x2, y2, x, y: double); cdecl; 186 | DrawPathCurveToSmoothRelative: procedure(wand: PDrawingWand; const x2, y2, x, y: double); cdecl; 187 | DrawPathEllipticArcAbsolute: procedure(wand: PDrawingWand; const rx, ry, x_axis_rotation: double; const large_arc_flag: MagickBooleanType; const sweep_flag: MagickBooleanType; const x, y: double); cdecl; 188 | DrawPathEllipticArcRelative: procedure(wand: PDrawingWand; const rx, ry, x_axis_rotation: double; const large_arc_flag: MagickBooleanType; const sweep_flag: MagickBooleanType; const x, y: double); cdecl; 189 | DrawPathFinish: procedure(wand: PDrawingWand); cdecl; 190 | DrawPathLineToAbsolute: procedure(wand: PDrawingWand; const x, y: double); cdecl; 191 | DrawPathLineToRelative: procedure(wand: PDrawingWand; const x, y: double); cdecl; 192 | {procedure DrawPathLineToHorizontalAbsolute(wand: PDrawingWand; 193 | const mode: PathMode; const x: double); cdecl; external WandExport; 194 | procedure DrawPathLineToHorizontalRelative(wand: PDrawingWand); cdecl; external WandExport; 195 | 196 | Contradio na declarao 197 | } 198 | DrawPathLineToVerticalAbsolute: procedure(wand: PDrawingWand; const y: double); cdecl; 199 | DrawPathLineToVerticalRelative: procedure(wand: PDrawingWand; const y: double); cdecl; 200 | DrawPathMoveToAbsolute: procedure(wand: PDrawingWand; const x, y: double); cdecl; 201 | DrawPathMoveToRelative: procedure(wand: PDrawingWand; const x, y: double); cdecl; 202 | DrawPathStart: procedure(wand: PDrawingWand); cdecl; 203 | DrawPoint: procedure(wand: PDrawingWand; const x, y: double); cdecl; 204 | DrawPolygon: procedure(wand: PDrawingWand; const number_coordinates: culong; const coordinates: PPointInfo ); cdecl; 205 | DrawPolyline: procedure(wand: PDrawingWand; const number_coordinates: culong; const coordinates: PPointInfo ); cdecl; 206 | DrawPopClipPath: procedure(wand: PDrawingWand); cdecl; 207 | DrawPopDefs: procedure(wand: PDrawingWand); cdecl; 208 | DrawPushClipPath: procedure(wand: PDrawingWand; clip_path_id: PAnsiChar); cdecl; 209 | DrawPushDefs: procedure(wand: PDrawingWand); cdecl; 210 | DrawRectangle: procedure(wand: PDrawingWand; const x1, y1, x2, y2: double); cdecl; 211 | DrawRotate: procedure(wand: PDrawingWand; const degrees: double); cdecl; 212 | DrawRoundRectangle: procedure(wand: PDrawingWand; const x1, y1, x2, y2, rx, ry: double); cdecl; 213 | DrawScale: procedure(wand: PDrawingWand; const x, y: double); cdecl; 214 | DrawSetClipRule: procedure(wand: PDrawingWand; const fill_rule: FillRule); cdecl; 215 | DrawSetClipUnits: procedure(wand: PDrawingWand; const clip_units: ClipPathUnits); cdecl; 216 | DrawSetFillColor: procedure(wand: PDrawingWand; const fill_wand: PPixelWand); cdecl; 217 | DrawSetFillAlpha: procedure(wand: PDrawingWand; const fill_opacity: double); cdecl; 218 | DrawSetFillRule: procedure(wand: PDrawingWand; const fill_rule: FillRule); cdecl; 219 | DrawSetFontSize: procedure(wand: PDrawingWand; const pointsize: double); cdecl; 220 | DrawSetFontStretch: procedure(wand: PDrawingWand; const font_stretch: StretchType); cdecl; 221 | DrawSetFontStyle: procedure(wand: PDrawingWand; const style: StyleType); cdecl; 222 | DrawSetFontWeight: procedure(wand: PDrawingWand; const font_weight: culong); cdecl; 223 | DrawSetGravity: procedure(wand: PDrawingWand; const gravity: GravityType); cdecl; 224 | DrawSkewX: procedure(wand: PDrawingWand; const degrees: double); cdecl; 225 | DrawSkewY: procedure(wand: PDrawingWand; const degrees: double); cdecl; 226 | DrawSetStrokeAntialias: procedure(wand: PDrawingWand; const stroke_antialias: MagickBooleanType ); cdecl; 227 | DrawSetStrokeColor: procedure(wand: PDrawingWand; const stroke_wand: PPixelWand); cdecl; 228 | DrawSetStrokeDashOffset: procedure(wand: PDrawingWand; const dash_offset: double); cdecl; 229 | DrawSetStrokeLineCap: procedure(wand: PDrawingWand; const linecap_: LineCap); cdecl; 230 | DrawSetStrokeLineJoin: procedure(wand: PDrawingWand; const linejoin_: LineJoin); cdecl; 231 | DrawSetStrokeMiterLimit: procedure(wand: PDrawingWand; const miterlimit: culong); cdecl; 232 | DrawSetStrokeAlpha: procedure(wand: PDrawingWand; const stroke_opacity: double); cdecl; 233 | DrawSetStrokeWidth: procedure(wand: PDrawingWand; const troke_width: double); cdecl; 234 | DrawSetTextAlignment: procedure(wand: PDrawingWand; const alignment: AlignType); cdecl; 235 | DrawSetTextAntialias: procedure(wand: PDrawingWand; const text_antialias: MagickBooleanType ); cdecl; 236 | DrawSetTextDecoration: procedure(wand: PDrawingWand; const decoration: DecorationType); cdecl; 237 | DrawSetTextEncoding: procedure(wand: PDrawingWand; const encoding: PAnsiChar); cdecl; 238 | DrawSetTextUnderColor: procedure(wand: PDrawingWand; const under_wand: PPixelWand); cdecl; 239 | DrawSetViewbox: procedure(wand: PDrawingWand; x1, y1, x2, y2: culong); cdecl; 240 | DrawTranslate: procedure(wand: PDrawingWand; const x, y: double); cdecl; 241 | 242 | { 243 | Deprecated. 244 | } 245 | {typedef struct _DrawingWand 246 | *DrawContext; 247 | 248 | extern WandExport double 249 | DrawGetFillOpacity(const wand: PDrawingWand), 250 | DrawGetStrokeOpacity(const wand: PDrawingWand); 251 | 252 | extern WandExport DrawInfo 253 | *DrawPeekGraphicWand(const wand: PDrawingWand); 254 | 255 | extern WandExport void 256 | DrawPopGraphicContext(DrawingWand *), 257 | DrawPushGraphicContext(DrawingWand *), 258 | DrawSetFillOpacity(DrawingWand *,const double), 259 | DrawSetStrokeOpacity(DrawingWand *,const double);} 260 | -------------------------------------------------------------------------------- /Source/effect.inc: -------------------------------------------------------------------------------- 1 | { 2 | Copyright 1999-2005 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | ImageMagick image effects methods. 17 | } 18 | 19 | type 20 | NoiseType = ( 21 | UndefinedNoise, 22 | UniformNoise, 23 | GaussianNoise, 24 | MultiplicativeGaussianNoise, 25 | ImpulseNoise, 26 | LaplacianNoise, 27 | PoissonNoise, 28 | RandomNoise 29 | ); 30 | 31 | {extern MagickExport Image 32 | *AdaptiveThresholdImage(const Image *,const unsigned long,const unsigned long, const long,ExceptionInfo *), 33 | *AddNoiseImage(const Image *,const NoiseType,ExceptionInfo *), 34 | *AddNoiseImageChannel(const Image *,const ChannelType,const NoiseType, 35 | ExceptionInfo *), 36 | *BlurImage(const Image *,const double,const double,ExceptionInfo *), 37 | *BlurImageChannel(const Image *,const ChannelType,const double,const double, 38 | ExceptionInfo *), 39 | *DespeckleImage(const Image *,ExceptionInfo *), 40 | *EdgeImage(const Image *,const double,ExceptionInfo *), 41 | *EmbossImage(const Image *,const double,const double,ExceptionInfo *), 42 | *GaussianBlurImage(const Image *,const double,const double,ExceptionInfo *), 43 | *GaussianBlurImageChannel(const Image *,const ChannelType,const double, 44 | const double,ExceptionInfo *), 45 | *MedianFilterImage(const Image *,const double,ExceptionInfo *), 46 | *MotionBlurImage(const Image *,const double,const double,const double, 47 | ExceptionInfo *), 48 | *PreviewImage(const Image *,const PreviewType,ExceptionInfo *), 49 | *RadialBlurImage(const Image *,const double,ExceptionInfo *), 50 | *RadialBlurImageChannel(const Image *,const ChannelType,const double, 51 | ExceptionInfo *), 52 | *ReduceNoiseImage(const Image *,const double,ExceptionInfo *), 53 | *ShadeImage(const Image *,const MagickBooleanType,const double,const double, 54 | ExceptionInfo *), 55 | *SharpenImage(const Image *,const double,const double,ExceptionInfo *), 56 | *SharpenImageChannel(const Image *,const ChannelType,const double, 57 | const double,ExceptionInfo *), 58 | *SpreadImage(const Image *,const double,ExceptionInfo *), 59 | *UnsharpMaskImage(const Image *,const double,const double,const double, 60 | const double,ExceptionInfo *), 61 | *UnsharpMaskImageChannel(const Image *,const ChannelType,const double, 62 | const double,const double,const double,ExceptionInfo *); 63 | 64 | extern MagickExport MagickBooleanType 65 | BlackThresholdImage(Image *,const char *), 66 | BilevelImage(Image *,const double), 67 | BilevelImageChannel(Image *,const ChannelType,const double), 68 | RandomThresholdImage(Image *,const char *,ExceptionInfo *), 69 | RandomThresholdImageChannel(Image *,const ChannelType,const char *, 70 | ExceptionInfo *), 71 | WhiteThresholdImage(Image *,const char *);} 72 | 73 | -------------------------------------------------------------------------------- /Source/fx.inc: -------------------------------------------------------------------------------- 1 | { 2 | Copyright 1999-2005 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | ImageMagick image f/x methods. 17 | } 18 | 19 | //extern MagickExport 20 | FxImage: function(const image: PImage; const expression: PAnsiChar; exception: PExceptionInfo): PImage; cdecl; 21 | 22 | -------------------------------------------------------------------------------- /Source/magick_attribute.inc: -------------------------------------------------------------------------------- 1 | { 2 | Copyright 1999-2005 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | Set or Get Magick Wand Attributes. 17 | } 18 | 19 | var 20 | MagickGetException: function(wand: PMagickWand; severity: PExceptionType): PAnsiChar; cdecl; 21 | MagickGetFilename: function(const wand: PMagickWand): PAnsiChar; cdecl; 22 | MagickGetFormat: function(wand: PMagickWand): PAnsiChar; cdecl; 23 | MagickGetHomeURL: function: PAnsiChar; cdecl; 24 | MagickGetOption: function(wand: PMagickWand; const key: PAnsiChar): PAnsiChar; cdecl; 25 | {sem documenta 26 | extern WandExport char 27 | *MagickQueryConfigureOption(const char *), 28 | **MagickQueryConfigureOptions(const char *,unsigned long *), 29 | **MagickQueryFonts(const char *,unsigned long *), 30 | **MagickQueryFormats(const char *,unsigned long *);} 31 | 32 | MagickGetCompression: function(wand: PMagickWand): CompressionType; cdecl; 33 | 34 | MagickGetCopyright: function: PAnsiChar; cdecl; 35 | MagickGetPackageName: function: PAnsiChar; cdecl; 36 | MagickGetQuantumDepth: function(depth: Pculong): PAnsiChar; cdecl; 37 | MagickGetQuantumRange: function(range: Pculong): PAnsiChar; cdecl; 38 | MagickGetReleaseDate: function: PAnsiChar; cdecl; 39 | MagickGetVersion: function(version: Pculong): PAnsiChar; cdecl; 40 | 41 | MagickGetSamplingFactors: function(wand: PMagickWand; number_factors: Pculong): Pdouble; cdecl; 42 | {function (wand: PMagickWand): Pdouble; cdecl; external WandExport; 43 | *MagickQueryFontMetrics(MagickWand *,const DrawingWand *,const char *), 44 | *MagickQueryMultilineFontMetrics(MagickWand *,const DrawingWand *, 45 | const char *);} 46 | 47 | MagickGetInterlaceScheme: function(wand: PMagickWand): InterlaceType; cdecl; 48 | 49 | {function (const wand: PMagickWand): ; cdecl; external WandExport; 50 | extern WandExport MagickBooleanType 51 | MagickGetPage(MagickWand *,unsigned long *,unsigned long *,long *,long *), 52 | MagickGetSize(const MagickWand *,unsigned long *,unsigned long *), 53 | MagickSetBackgroundColor(MagickWand *,const PixelWand *), 54 | MagickSetCompression(MagickWand *,const CompressionType), 55 | MagickSetCompressionQuality(MagickWand *,const unsigned long), 56 | MagickSetFilename(MagickWand *,const char *), 57 | MagickSetFormat(MagickWand *,const char *), 58 | MagickSetInterlaceScheme(MagickWand *,const InterlaceType), 59 | MagickSetOption(MagickWand *,const char *,const char *), 60 | MagickSetPage(MagickWand *,const unsigned long,const unsigned long, 61 | const long,const long), 62 | MagickSetPassphrase(MagickWand *,const char *), 63 | } 64 | 65 | MagickSetResolution: function(wand: PMagickWand; const x_resolution, y_resolution:double):MagickBooleanType; cdecl; 66 | 67 | { 68 | MagickSetResourceLimit(const ResourceType type,const unsigned long limit), 69 | MagickSetSamplingFactors(MagickWand *,const unsigned long,const double *), 70 | MagickSetSize(MagickWand *,const unsigned long,const unsigned long), 71 | MagickSetType(MagickWand *,const ImageType); 72 | 73 | function (const wand: PMagickWand): ; cdecl; external WandExport; 74 | extern WandExport MagickProgressMonitor 75 | MagickSetProgressMonitor(MagickWand *,const MagickProgressMonitor,void *); 76 | 77 | function (const wand: PMagickWand): ; cdecl; external WandExport; 78 | extern WandExport unsigned long 79 | MagickGetCompressionQuality(MagickWand *), 80 | MagickGetResource(const ResourceType), 81 | MagickGetResourceLimit(const ResourceType);} 82 | 83 | -------------------------------------------------------------------------------- /Source/magick_image.inc: -------------------------------------------------------------------------------- 1 | { 2 | Copyright 1999-2005 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | Magick Wand Image Methods. 17 | } 18 | 19 | { BugFix : 20 | - MagickDrawImage(...const drawing_wand: PMagickWand... 21 | + MagickDrawImage(...const drawing_wand: PDrawingWand... 22 | - MagickAffineTransformImage(...const drawing_wand: PMagickWand... 23 | + MagickAffineTransformImage(...const drawing_wand: PDrawingWand... 24 | - MagickAnnotateImage(...const drawing_wand: PMagickWand... 25 | + MagickAnnotateImage(...const drawing_wand: PDrawingWand... 26 | } 27 | 28 | var 29 | MagickGetImageChannelStatistics: function(wand: PMagickWand): PChannelStatistics; cdecl; 30 | 31 | MagickGetImageAttribute: function(wand: PMagickWand): PAnsiChar; cdecl; 32 | MagickGetImageFilename: function(wand: PMagickWand): PAnsiChar; cdecl; 33 | MagickGetImageFormat: function(wand: PMagickWand): PAnsiChar; cdecl; 34 | MagickGetImageSignature: function(wand: PMagickWand): PAnsiChar; cdecl; 35 | MagickIdentifyImage: function(wand: PMagickWand): PAnsiChar; cdecl; 36 | 37 | MagickGetImageCompose: function(wand: PMagickWand): CompositeOperator; cdecl; 38 | 39 | MagickGetImageColorspace: function(wand: PMagickWand): ColorspaceType; cdecl; 40 | 41 | MagickGetImageCompression: function(wand: PMagickWand): CompressionType; cdecl; 42 | 43 | MagickGetImageDispose: function(wand: PMagickWand): DisposeType; cdecl; 44 | 45 | MagickGetImageGamma: function(wand: PMagickWand): double; cdecl; 46 | MagickGetImageTotalInkDensity: function(wand: PMagickWand): double; cdecl; 47 | 48 | GetImageFromMagickWand: function(wand: PMagickWand): PImage; cdecl; 49 | 50 | MagickGetImageType: function(wand: PMagickWand): ImageType; cdecl; 51 | 52 | MagickGetImageInterlaceScheme: function(wand: PMagickWand): InterlaceType; cdecl; 53 | 54 | MagickGetImageIndex: function(wand: PMagickWand): clong; cdecl; 55 | 56 | MagickAdaptiveThresholdImage: function(wand: PMagickWand; const width, height: culong; const offset: clong): MagickBooleanType; cdecl; 57 | MagickAddImage: function(wand: PMagickWand; const add_wand: PMagickWand): MagickBooleanType; cdecl; 58 | MagickAddNoiseImage: function(wand: PMagickWand; const noise_type: NoiseType): MagickBooleanType; cdecl; 59 | MagickAffineTransformImage: function(wand: PMagickWand; const drawing_wand: PDrawingWand): MagickBooleanType; cdecl; 60 | MagickAnnotateImage: function(wand: PMagickWand; const drawing_wand: PDrawingWand; const x, y, angle: double; const text: PAnsiChar): MagickBooleanType; cdecl; 61 | MagickAnimateImages: function(wand: PMagickWand; const server_name: PAnsiChar): MagickBooleanType; cdecl; 62 | MagickBlackThresholdImage: function(wand: PMagickWand; const threshold: PPixelWand): MagickBooleanType; cdecl; 63 | MagickBlurImage: function(wand: PMagickWand; const radius, sigma: double): MagickBooleanType; cdecl; 64 | MagickBlurImageChannel: function(wand: PMagickWand; const channel: ChannelType; const radius, sigma: double): MagickBooleanType; cdecl; 65 | MagickBorderImage: function(wand: PMagickWand; const bordercolor: PPixelWand; const width, height: culong): MagickBooleanType; cdecl; 66 | MagickCharcoalImage: function(wand: PMagickWand; const radius, sigma: double): MagickBooleanType; cdecl; 67 | MagickChopImage: function(wand: PMagickWand; const width, height: culong; const x, y: clong): MagickBooleanType; cdecl; 68 | MagickClipImage: function(wand: PMagickWand): MagickBooleanType; cdecl; 69 | MagickClipPathImage: function(wand: PMagickWand; const pathname: PAnsiChar; const inside: MagickBooleanType): MagickBooleanType; cdecl; 70 | MagickColorFloodfillImage: function(wand: PMagickWand; const fill: PPixelWand; const fuzz: double; const bordercolor: PPixelWand; const x, y: clong): MagickBooleanType; cdecl; 71 | MagickColorizeImage: function(wand: PMagickWand; const colorize, opacity: PPixelWand): MagickBooleanType; cdecl; 72 | MagickCommentImage: function(wand: PMagickWand; const comment: PAnsiChar): MagickBooleanType; cdecl; 73 | MagickCompositeImage: function(wand: PMagickWand; const composite_wand: PMagickWand; const compose: CompositeOperator; const x, y: clong): MagickBooleanType; cdecl; 74 | MagickConstituteImage: function(wand: PMagickWand; const columns, rows: culong; const map: PAnsiChar; const storage: StorageType; pixels: Pointer): MagickBooleanType; cdecl; 75 | MagickContrastImage: function(wand: PMagickWand; const sharpen: MagickBooleanType): MagickBooleanType; cdecl; 76 | MagickConvolveImage: function(wand: PMagickWand; const order: culong; const kernel: PDouble): MagickBooleanType; cdecl; 77 | MagickConvolveImageChannel: function(wand: PMagickWand; const channel: ChannelType; const order: culong; const kernel: PDouble): MagickBooleanType; cdecl; 78 | MagickCropImage: function(wand: PMagickWand; const width, height: culong; const x, y: clong): MagickBooleanType; cdecl; 79 | MagickCycleColormapImage: function(wand: PMagickWand; const displace: clong): MagickBooleanType; cdecl; 80 | MagickDespeckleImage: function(wand: PMagickWand): MagickBooleanType; cdecl; 81 | MagickDeskewImage: function(wand: PMagickWand; const threshold: double): MagickBooleanType; cdecl; 82 | MagickDisplayImage: function(wand: PMagickWand; const server_name: PAnsiChar): MagickBooleanType; cdecl; 83 | MagickDisplayImages: function(wand: PMagickWand; const server_name: PAnsiChar): MagickBooleanType; cdecl; 84 | MagickDrawImage: function(wand: PMagickWand; const drawing_wand: PDrawingWand): MagickBooleanType; cdecl; 85 | MagickEdgeImage: function(wand: PMagickWand; const radius: double): MagickBooleanType; cdecl; 86 | MagickEmbossImage: function(wand: PMagickWand; const radius, sigma: double): MagickBooleanType; cdecl; 87 | MagickEnhanceImage: function(wand: PMagickWand): MagickBooleanType; cdecl; 88 | MagickEqualizeImage: function(wand: PMagickWand): MagickBooleanType; cdecl; 89 | MagickEvaluateImage: function(wand: PMagickWand; const op: MagickEvaluateOperator; const constant: double): MagickBooleanType; cdecl; 90 | MagickEvaluateImageChannel: function(wand: PMagickWand; const op: MagickEvaluateOperator; const constant: double): MagickBooleanType; cdecl; 91 | MagickFlipImage: function(wand: PMagickWand): MagickBooleanType; cdecl; 92 | MagickFlopImage: function(wand: PMagickWand): MagickBooleanType; cdecl; 93 | MagickFrameImage: function(wand: PMagickWand; const matte_color: PPixelWand; const width, height: culong; const inner_bevel, outer_bevel: clong): MagickBooleanType; cdecl; 94 | MagickGammaImage: function(wand: PMagickWand; const gamma: double): MagickBooleanType; cdecl; 95 | MagickGammaImageChannel: function(wand: PMagickWand; const channel: ChannelType; const gamma: double): MagickBooleanType; cdecl; 96 | MagickGaussianBlurImage: function(wand: PMagickWand; const radius, sigma: double): MagickBooleanType; cdecl; 97 | MagickGaussianBlurImageChannel: function(wand: PMagickWand; const channel: ChannelType; const radius, sigma: double): MagickBooleanType; cdecl; 98 | MagickGetImageBackgroundColor: function(wand: PMagickWand; background_color: PPixelWand): MagickBooleanType; cdecl; 99 | MagickGetImageBluePrimary: function(wand: PMagickWand; x, y: Pdouble): MagickBooleanType; cdecl; 100 | MagickGetImageBorderColor: function(wand: PMagickWand; border_color: PPixelWand ): MagickBooleanType; cdecl; 101 | MagickGetImageChannelDistortion: function(wand: PMagickWand; const reference: PMagickWand; const channel: ChannelType; const metric: MetricType; distortion: Pdouble): MagickBooleanType; cdecl; 102 | MagickGetImageDistortion: function(wand: PMagickWand; const reference: PMagickWand; const metric: MetricType; distortion: Pdouble): MagickBooleanType; cdecl; 103 | MagickGetImageChannelExtrema: function(wand: PMagickWand; const channel: ChannelType; minima, maxima: Pculong): MagickBooleanType; cdecl; 104 | MagickGetImageChannelMean: function(wand: PMagickWand; const channel: ChannelType; mean, standard_deviation: Pdouble): MagickBooleanType; cdecl; 105 | MagickGetImageColormapColor: function(wand: PMagickWand; const index: culong; color: PPixelWand): MagickBooleanType; cdecl; 106 | MagickGetImageExtrema: function(wand: PMagickWand; min, max: culong): MagickBooleanType; cdecl; 107 | MagickGetImageGreenPrimary: function(wand: PMagickWand; x, y: Pdouble): MagickBooleanType; cdecl; 108 | MagickGetImageMatteColor: function(wand: PMagickWand; matte_color: PPixelWand): MagickBooleanType; cdecl; 109 | MagickGetImagePage: function(wand: PMagickWand; width, height: Pculong; x, y: Pclong): MagickBooleanType; cdecl; 110 | MagickGetImagePixelColor: function(wand: PMagickWand; const x, y: clong; color: PPixelWand): MagickBooleanType; cdecl; 111 | MagickGetImagePixels: function(wand: PMagickWand; const x, y: clong; const columns, rows: culong; const map: PAnsiChar; const storage: StorageType; pixels: Pointer): MagickBooleanType; cdecl; 112 | MagickGetImageRedPrimary: function(wand: PMagickWand; x, y: Pdouble): MagickBooleanType; cdecl; 113 | MagickGetImageResolution: function(wand: PMagickWand; x, y: Pdouble): MagickBooleanType; cdecl; 114 | MagickGetImageWhitePoint: function(wand: PMagickWand; x, y: Pdouble): MagickBooleanType; cdecl; 115 | MagickHasNextImage: function(wand: PMagickWand): MagickBooleanType; cdecl; 116 | MagickHasPreviousImage: function(wand: PMagickWand): MagickBooleanType; cdecl; 117 | MagickImplodeImage: function(wand: PMagickWand; const radius: double): MagickBooleanType; cdecl; 118 | MagickLabelImage: function(wand: PMagickWand; const _label: PAnsiChar): MagickBooleanType; cdecl; 119 | MagickLevelImage: function(wand: PMagickWand; const black_point, gamma, white_point: double): MagickBooleanType; cdecl; 120 | MagickLevelImageChannel: function(wand: PMagickWand; const channel: ChannelType; const black_point, gamma, white_point: double ): MagickBooleanType; cdecl; 121 | MagickMagnifyImage: function(wand: PMagickWand): MagickBooleanType; cdecl; 122 | MagickMapImage: function(wand: PMagickWand; const map_wand: PMagickWand; const dither: MagickBooleanType): MagickBooleanType; cdecl; 123 | MagickMatteFloodfillImage: function(wand: PMagickWand; const opacity: Quantum; const fuzz: double; const bordercolor: PPixelWand; const x, y: clong): MagickBooleanType; cdecl; 124 | MagickMedianFilterImage: function(wand: PMagickWand; const radius: double): MagickBooleanType; cdecl; 125 | MagickMinifyImage: function(wand: PMagickWand): MagickBooleanType; cdecl; 126 | MagickModulateImage: function(wand: PMagickWand; const brightness, saturation, hue: double): MagickBooleanType; cdecl; 127 | MagickMotionBlurImage: function(wand: PMagickWand; const radius, sigma, angle: double): MagickBooleanType; cdecl; 128 | MagickNegateImage: function(wand: PMagickWand; const gray: MagickBooleanType): MagickBooleanType; cdecl; 129 | { 130 | function MagickNegateImageChannel(wand: PMagickWand): MagickBooleanType; external WandExport delayed; 131 | (MagickWand *,const ChannelType, 132 | const MagickBooleanType), 133 | Documentation not found 134 | } 135 | MagickNewImage: function(wand: PMagickWand; const columns, rows: culong; const background: PPixelWand): MagickBooleanType; cdecl; 136 | MagickNextImage: function(wand: PMagickWand): MagickBooleanType; cdecl; 137 | MagickNormalizeImage: function(wand: PMagickWand): MagickBooleanType; cdecl; 138 | MagickOilPaintImage: function(wand: PMagickWand; const radius: double): MagickBooleanType; cdecl; 139 | MagickPaintOpaqueImage: function(wand: PMagickWand; const target, fill: PPixelWand; const fuzz: double): MagickBooleanType; cdecl; 140 | MagickPaintTransparentImage: function(wand: PMagickWand; const target: PPixelWand; const opacity: Quantum; const fuzz: double): MagickBooleanType; cdecl; 141 | MagickPingImage: function(wand: PMagickWand; const filename: PAnsiChar): MagickBooleanType; cdecl; 142 | { 143 | function MagickPosterizeImage(wand: PMagickWand; 144 | const levels: Word; const dither: MagickBooleanType): MagickBooleanType; cdecl; external WandExport delayed; 145 | ?? 146 | } 147 | MagickPreviousImage: function(wand: PMagickWand): MagickBooleanType; cdecl; 148 | MagickProfileImage: function(wand: PMagickWand; const name: PAnsiChar; const profile: PAnsiChar; const length: culong): MagickBooleanType; cdecl; 149 | MagickQuantizeImage: function(wand: PMagickWand; const number_colors: culong; const colorspace: ColorspaceType; const treedepth: culong; const dither, measure_error): MagickBooleanType; cdecl; 150 | MagickQuantizeImages: function(wand: PMagickWand; const number_colors: culong; const colorspace: ColorspaceType; const treedepth: culong; const dither: MagickBooleanType; const measure_error: MagickBooleanType): MagickBooleanType; cdecl; 151 | MagickRadialBlurImage: function(wand: PMagickWand; const angle: double): MagickBooleanType; cdecl; 152 | MagickRadialBlurImageChannel: function(wand: PMagickWand; const channel: ChannelType; const angle: double): MagickBooleanType; cdecl; 153 | MagickRaiseImage: function(wand: PMagickWand; const width, height: culong; const x, y: clong; const raise_: MagickBooleanType): MagickBooleanType; cdecl; 154 | MagickReadImage: function(wand: PMagickWand; const filename: PAnsiChar): MagickBooleanType; cdecl; 155 | MagickReadImageBlob: function(wand: PMagickWand; const blob: Pointer; const length: clong): MagickBooleanType; cdecl; 156 | //function MagickReadImageFile(wand: PMagickWand; file_: file): MagickBooleanType; external WandExport delayed; 157 | 158 | MagickReduceNoiseImage: function(wand: PMagickWand; const radius: double): MagickBooleanType; cdecl; 159 | MagickRemoveImage: function(wand: PMagickWand): MagickBooleanType; cdecl; 160 | MagickResampleImage: function(wand: PMagickWand; const x_resolution, y_resolution: double; const filter: FilterType; const blur: double): MagickBooleanType; cdecl; 161 | MagickResizeImage: function(wand: PMagickWand; const columns, rows: culong; const filter: FilterType; const blur: double): MagickBooleanType; cdecl; 162 | MagickRollImage: function(wand: PMagickWand; const x: clong; const y: culong): MagickBooleanType; cdecl; 163 | MagickRotateImage: function(wand: PMagickWand; const background: PPixelWand; const degrees: double): MagickBooleanType; cdecl; 164 | MagickSampleImage: function(wand: PMagickWand; const columns, rows: culong): MagickBooleanType; cdecl; 165 | MagickScaleImage: function(wand: PMagickWand; const columns, rows: culong): MagickBooleanType; cdecl; 166 | MagickSeparateImageChannel: function(wand: PMagickWand; const channel: ChannelType): MagickBooleanType; cdecl; 167 | 168 | // MagickSepiaToneImage(MagickWand *,const double), 169 | 170 | MagickSetImage: function(wand: PMagickWand; const set_wand: PMagickWand): MagickBooleanType; cdecl; 171 | MagickSetImageAttribute: function(wand: PMagickWand; const key, attribute: PAnsiChar): MagickBooleanType; cdecl; 172 | MagickSetImageBackgroundColor: function(wand: PMagickWand; const background: PPixelWand): MagickBooleanType; cdecl; 173 | MagickSetImageBias: function(wand: PMagickWand; const bias: double): MagickBooleanType; cdecl; 174 | MagickSetImageBluePrimary: function(wand: PMagickWand; const x, y: double): MagickBooleanType; cdecl; 175 | MagickSetImageBorderColor: function(wand: PMagickWand; const border: PPixelWand): MagickBooleanType; cdecl; 176 | MagickSetImageChannelDepth: function(wand: PMagickWand; const channel: ChannelType; const depth: culong): MagickBooleanType; cdecl; 177 | MagickSetImageColormapColor: function(wand: PMagickWand; const index: culong; const color: PPixelWand): MagickBooleanType; cdecl; 178 | MagickSetImageColorspace: function(wand: PMagickWand; const colorspace: ColorspaceType): MagickBooleanType; cdecl; 179 | MagickSetImageCompose: function(wand: PMagickWand; const compose: CompositeOperator): MagickBooleanType; cdecl; 180 | MagickSetImageCompression: function(wand: PMagickWand; const compression: CompressionType): MagickBooleanType; cdecl; 181 | MagickSetImageCompressionQuality: function(wand: PMagickWand; const quality: culong): MagickBooleanType; cdecl; 182 | MagickSetImageDelay: function(wand: PMagickWand; const delay: culong): MagickBooleanType; cdecl; 183 | MagickSetImageDepth: function(wand: PMagickWand; const depth: culong): MagickBooleanType; cdecl; 184 | MagickSetImageDispose: function(wand: PMagickWand; const dispose: DisposeType): MagickBooleanType; cdecl; 185 | MagickSetImageExtent: function(wand: PMagickWand; const columns, rows: culong): MagickBooleanType; cdecl; 186 | MagickSetImageFilename: function(wand: PMagickWand; const filename: PAnsiChar): MagickBooleanType; cdecl; 187 | MagickSetImageFormat: function(wand: PMagickWand; const format: PAnsiChar): MagickBooleanType; cdecl; 188 | MagickSetImageGamma: function(wand: PMagickWand; const gamma: Double): MagickBooleanType; cdecl; 189 | MagickSetImageGreenPrimary: function(wand: PMagickWand; const x, y: Double): MagickBooleanType; cdecl; 190 | MagickSetImageIndex: function(wand: PMagickWand; const index: clong): MagickBooleanType; cdecl; 191 | MagickSetImageInterlaceScheme: function(wand: PMagickWand; const interlace_scheme: InterlaceType): MagickBooleanType; cdecl; 192 | MagickSetImageIterations: function(wand: PMagickWand; const iterations: culong): MagickBooleanType; cdecl; 193 | MagickSetImageMatteColor: function(wand: PMagickWand; const matte: PPixelWand): MagickBooleanType; cdecl; 194 | MagickSetImagePage: function(wand: PMagickWand; const width, height: culong; const x, y: clong): MagickBooleanType; cdecl; 195 | MagickSetImagePixels: function(wand: PMagickWand; const x, y: clong; const columns, rows: culong; const map: PAnsiChar; const storage: StorageType; const pixels: Pointer): MagickBooleanType; cdecl; 196 | MagickSetImageProfile: function(wand: PMagickWand; const name: PAnsiChar; const profile: Pointer; const length: culong): MagickBooleanType; cdecl; 197 | MagickSetImageRedPrimary: function(wand: PMagickWand; const x, y: Double): MagickBooleanType; cdecl; 198 | MagickSetImageRenderingIntent: function(wand: PMagickWand; const rendering_intent: RenderingIntent ): MagickBooleanType; cdecl; 199 | MagickSetImageResolution: function(wand: PMagickWand; const x_resolution, y_resolution: double ): MagickBooleanType; cdecl; 200 | MagickSetImageScene: function(wand: PMagickWand; const scene: culong): MagickBooleanType; cdecl; 201 | MagickSetImageType: function(wand: PMagickWand; const image_type: ImageType ): MagickBooleanType; cdecl; 202 | MagickSetImageUnits: function(wand: PMagickWand; const units: ResolutionType ): MagickBooleanType; cdecl; 203 | //function MagickSetImageVirtualPixelMethod(wand: PMagickWand; 204 | // const method: VirtualPixelMethod): MagickBooleanType; cdecl; 205 | MagickSetImageWhitePoint: function(wand: PMagickWand; const x, y: double ): MagickBooleanType; cdecl; 206 | MagickShadowImage: function(wand: PMagickWand; const radius, sigma: double; const x, y: clong ): MagickBooleanType; cdecl; 207 | MagickSharpenImage: function(wand: PMagickWand; const radius, sigma: double ): MagickBooleanType; cdecl; 208 | MagickSharpenImageChannel: function(wand: PMagickWand; const channel: ChannelType; const radius, sigma: double): MagickBooleanType; cdecl; 209 | MagickShaveImage: function(wand: PMagickWand; const columns, rows: culong ): MagickBooleanType; cdecl; 210 | MagickShearImage: function(wand: PMagickWand; const background: PPixelWand; const x_shear, y_shear: double): MagickBooleanType; cdecl; 211 | MagickSigmoidalContrastImage: function(wand: PMagickWand; const sharpen: MagickBooleanType; const alpha, beta: double ): MagickBooleanType; cdecl; 212 | MagickSigmoidalContrastImageChannel: function(wand: PMagickWand; const channel: ChannelType; const sharpen: MagickBooleanType; const alpha, beta: double ): MagickBooleanType; cdecl; 213 | MagickSolarizeImage: function(wand: PMagickWand; const threshold: double ): MagickBooleanType; cdecl; 214 | MagickSpliceImage: function(wand: PMagickWand; const width, height: culong; const x, y: clong ): MagickBooleanType; cdecl; 215 | MagickSpreadImage: function(wand: PMagickWand; const radius: double): MagickBooleanType; cdecl; 216 | MagickStripImage: function(wand: PMagickWand): MagickBooleanType; cdecl; 217 | MagickSwirlImage: function(wand: PMagickWand; const degrees: double): MagickBooleanType; cdecl; 218 | MagickTintImage: function(wand: PMagickWand; const tint: PPixelWand; const opacity: PPixelWand ): MagickBooleanType; cdecl; 219 | MagickThresholdImage: function(wand: PMagickWand; const threshold: double): MagickBooleanType; cdecl; 220 | MagickThresholdImageChannel: function(wand: PMagickWand; const channel: ChannelType; const threshold: double): MagickBooleanType; cdecl; 221 | MagickTrimImage: function(wand: PMagickWand; const fuzz: double): MagickBooleanType; cdecl; 222 | MagickUnsharpMaskImage: function(wand: PMagickWand; const radius, sigma, amount, threshold: double): MagickBooleanType; cdecl; 223 | MagickUnsharpMaskImageChannel: function(wand: PMagickWand; const channel: ChannelType; const radius, sigma, amount, threshold: double ): MagickBooleanType; cdecl; 224 | MagickWaveImage: function(wand: PMagickWand; const amplitude, wave_length: double ): MagickBooleanType; cdecl; 225 | MagickWhiteThresholdImage: function(wand: PMagickWand; const threshold: PPixelWand): MagickBooleanType; cdecl; 226 | MagickWriteImage: function(wand: PMagickWand; const filename: PAnsiChar): MagickBooleanType; cdecl; 227 | // MagickWriteImageFile(MagickWand *,FILE *), 228 | MagickWriteImages: function(wand: PMagickWand; const filename: PAnsiChar; const adjoin: MagickBooleanType ): MagickBooleanType; cdecl; 229 | // MagickWriteImagesFile(MagickWand *,FILE *); 230 | 231 | MagickResetImagePage: function(wand: PMagickWand; const page: PAnsiChar): MagickBooleanType; cdecl; 232 | 233 | MagickSetImageProgressMonitor: function(wand: PMagickWand; const progress_monitor: MagickProgressMonitor; client_data: Pointer): MagickProgressMonitor; cdecl; 234 | 235 | MagickGetImageSize: function(wand: PMagickWand): MagickSizeType; cdecl; 236 | 237 | MagickAppendImages: function(wand: PMagickWand; const stack: MagickBooleanType): PMagickWand; cdecl; 238 | MagickAverageImages: function(wand: PMagickWand): PMagickWand; cdecl; 239 | MagickCoalesceImages: function(wand: PMagickWand): PMagickWand; cdecl; 240 | MagickCombineImages: function(wand: PMagickWand; para2: ChannelType): PMagickWand; cdecl; 241 | MagickCompareImageChannels: function(wand: PMagickWand; const reference: PMagickWand; const channel: ChannelType; const metric: MetricType; distortion: PDouble ): PMagickWand; cdecl; 242 | MagickCompareImages: function(wand: PMagickWand; const reference: PMagickWand; const metric: MetricType; distortion: PDouble ): PMagickWand; cdecl; 243 | MagickDeconstructImages: function(wand: PMagickWand): PMagickWand; cdecl; 244 | MagickFlattenImages: function(wand: PMagickWand): PMagickWand; cdecl; 245 | MagickFxImage: function(wand: PMagickWand; const expression: PAnsiChar): PMagickWand; cdecl; 246 | MagickFxImageChannel: function(wand: PMagickWand; const channel: ChannelType; const expression: PAnsiChar ): PMagickWand; cdecl; 247 | MagickGetImage: function(wand: PMagickWand): PMagickWand; cdecl; 248 | MagickGetImageRegion: function(wand: PMagickWand; const width, height: culong; const x, y: clong ): PMagickWand; cdecl; 249 | MagickMorphImages: function(wand: PMagickWand; const number_frames: culong): PMagickWand; cdecl; 250 | MagickMosaicImages: function(wand: PMagickWand): PMagickWand; cdecl; 251 | //function MagickMontageImage(wand: PMagickWand; 252 | // const drawing_wand: DrawingWand; const tile_geometry: PAnsiChar; 253 | // const thumbnail_geometry: PAnsiChar; const mode: MontageMode; const frame: PAnsiChar 254 | // ): PMagickWand; cdecl; 255 | MagickPreviewImages: function(wand: PMagickWand; const preview: PreviewType): PMagickWand; cdecl; 256 | MagickSteganoImage: function(wand: PMagickWand; const watermark_wand: PMagickWand; const offset: clong): PMagickWand; cdecl; 257 | MagickStereoImage: function(wand: PMagickWand; const offset_wand: PMagickWand): PMagickWand; cdecl; 258 | MagickTextureImage: function(wand: PMagickWand; const texture_wand: PMagickWand): PMagickWand; cdecl; 259 | MagickTransformImage: function(wand: PMagickWand; const crop, geometry: PAnsiChar): PMagickWand; cdecl; 260 | NewMagickWandFromImage: function(para1: PImage): PMagickWand; cdecl; 261 | 262 | MagickGetImageHistogram: function(wand: PMagickWand; number_colors: Pculong): PPPixelWand; cdecl; 263 | 264 | MagickGetImageRenderingIntent: function(wand: PMagickWand): RenderingIntent; cdecl; 265 | 266 | MagickGetImageUnits: function(wand: PMagickWand): ResolutionType; cdecl; 267 | 268 | MagickGetImageBlob: function(wand: PMagickWand; length: Pcsize_t): PByte; cdecl; 269 | MagickGetImagesBlob: function(wand: PMagickWand; length: Pcsize_t): PByte; cdecl; 270 | MagickGetImageProfile: function(wand: PMagickWand; name: PAnsiChar; length: Pcsize_t): PByte; cdecl; 271 | MagickRemoveImageProfile: function(wand: PMagickWand; name: PAnsiChar; length: Pcsize_t): PByte; cdecl; 272 | 273 | MagickGetImageColors: function(wand: PMagickWand): culong; cdecl; 274 | MagickGetImageCompressionQuality: function(wand: PMagickWand): culong; cdecl; 275 | MagickGetImageDelay: function(wand: PMagickWand): culong; cdecl; 276 | MagickGetImageChannelDepth: function(wand: PMagickWand; const channel: ChannelType): culong; cdecl; 277 | MagickGetImageDepth: function(wand: PMagickWand): culong; cdecl; 278 | MagickGetImageHeight: function(wand: PMagickWand): culong; cdecl; 279 | MagickGetImageIterations: function(wand: PMagickWand): culong; cdecl; 280 | MagickGetImageScene: function(wand: PMagickWand): culong; cdecl; 281 | MagickGetImageWidth: function(wand: PMagickWand): culong; cdecl; 282 | MagickGetNumberImages: function(wand: PMagickWand): culong; cdecl; 283 | 284 | //function MagickGetImageVirtualPixelMethod(wand: PMagickWand): VirtualPixelMethod; cdecl; 285 | 286 | { 287 | Deprecated methods. 288 | } 289 | {extern WandExport char 290 | *MagickDescribeImage(MagickWand *); 291 | 292 | extern WandExport MagickBooleanType 293 | MagickOpaqueImage(MagickWand *,const PixelWand *,const PixelWand *, 294 | const double), 295 | MagickSetImageOption(MagickWand *,const char *,const char *,const char *), 296 | MagickTransparentImage(MagickWand *,const PixelWand *,const Quantum, 297 | const double); 298 | 299 | extern WandExport MagickWand 300 | *MagickRegionOfInterestImage(MagickWand *,const unsigned long, 301 | const unsigned long,const long,const long); 302 | 303 | extern WandExport unsigned char 304 | *MagickWriteImageBlob(MagickWand *,size_t *); 305 | } 306 | -------------------------------------------------------------------------------- /Source/magick_type.inc: -------------------------------------------------------------------------------- 1 | { 2 | Copyright 1999-2005 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | ImageMagick structure members. 17 | 18 | NOTE: This is a simplifyed version of magick/magick-type.h 19 | } 20 | 21 | const MaxTextExtent = 4096; 22 | 23 | const 24 | MagickFalse = 0; 25 | MagickTrue = 1; 26 | 27 | type 28 | MagickBooleanType = culong; 29 | 30 | PMagickBooleanType = ^MagickBooleanType; 31 | 32 | //#include "magick/semaphore.h" 33 | 34 | { 35 | The Quantum Depth was fixed at 16 to make the code simpler 36 | 37 | In the future there is the possibility to go to the c bindings 38 | and implement the variable QuantumDepth here 39 | } 40 | const 41 | QuantumDepth = 16; 42 | 43 | {$define QuantumLeap} 44 | 45 | const 46 | MagickEpsilon = 1.0E-10; 47 | MaxColormapSize = 65536; 48 | MaxMap = 65535; 49 | QuantumFormat = '%u'; 50 | QuantumRange = 65535; 51 | 52 | type 53 | MagickRealType = double; 54 | Quantum = Word; 55 | 56 | { 57 | Type declarations. 58 | } 59 | type 60 | MagickStatusType = Word; 61 | MagickOffsetType = Int64; 62 | MagickSizeType = Int64; 63 | 64 | type 65 | ChannelType = ( 66 | UndefinedChannel = $0000, 67 | RedChannel = $0001, 68 | GrayChannel = $0001, 69 | CyanChannel = $0001, 70 | GreenChannel = $0002, 71 | MagentaChannel = $0002, 72 | BlueChannel = $0004, 73 | YellowChannel = $0004, 74 | BlackChannel = $0008, 75 | AlphaChannel = $0010, 76 | OpacityChannel = $0010, 77 | IndexChannel = $0020, // Color Index Table? */ 78 | ReadMaskChannel = $0040, // Pixel is Not Readable? */ 79 | WriteMaskChannel = $0080, // Pixel is Write Protected? */ 80 | MetaChannel = $0100, // ???? */ 81 | CompositeChannels = $001F, 82 | AllChannels = $7ffffff, 83 | { 84 | Special purpose channel types. 85 | FUTURE: are these needed any more - they are more like hacks 86 | SyncChannels for example is NOT a real channel but a 'flag' 87 | It really says -- "User has not defined channels" 88 | Though it does have extra meaning in the "-auto-level" operator 89 | } 90 | TrueAlphaChannel = $0100, // extract actual alpha channel from opacity */ 91 | RGBChannels = $0200, // set alpha from grayscale mask in RGB */ 92 | GrayChannels = $0400, 93 | SyncChannels = $20000, // channels modified as a single unit */ 94 | DefaultChannels = AllChannels 95 | ); 96 | 97 | type 98 | PChannelType = ^ChannelType; 99 | 100 | type 101 | ClassType = ( 102 | UndefinedClass, 103 | DirectClass, 104 | PseudoClass 105 | ); 106 | 107 | PClassType = ^ClassType; 108 | 109 | type 110 | ColorspaceType = ( 111 | UndefinedColorspace, 112 | CMYColorspace, // negated linear RGB colorspace */ 113 | CMYKColorspace, // CMY with Black separation */ 114 | GRAYColorspace, // Single Channel greyscale (non-linear) image */ 115 | HCLColorspace, 116 | HCLpColorspace, 117 | HSBColorspace, 118 | HSIColorspace, 119 | HSLColorspace, 120 | HSVColorspace, // alias for HSB */ 121 | HWBColorspace, 122 | LabColorspace, 123 | LCHColorspace, // alias for LCHuv */ 124 | LCHabColorspace, // Cylindrical (Polar) Lab */ 125 | LCHuvColorspace, // Cylindrical (Polar) Luv */ 126 | LogColorspace, 127 | LMSColorspace, 128 | LuvColorspace, 129 | OHTAColorspace, 130 | Rec601YCbCrColorspace, 131 | Rec709YCbCrColorspace, 132 | RGBColorspace, // Linear RGB colorspace */ 133 | scRGBColorspace, // ??? */ 134 | sRGBColorspace, // Default: non-linear sRGB colorspace */ 135 | TransparentColorspace, 136 | xyYColorspace, 137 | XYZColorspace, // IEEE Color Reference colorspace */ 138 | YCbCrColorspace, 139 | YCCColorspace, 140 | YDbDrColorspace, 141 | YIQColorspace, 142 | YPbPrColorspace, 143 | YUVColorspace, 144 | LinearGRAYColorspace, // Single Channel greyscale (linear) image */ 145 | JzazbzColorspace, 146 | DisplayP3Colorspace, 147 | Adobe98Colorspace, 148 | ProPhotoColorspace 149 | ); 150 | 151 | PColorspaceType = ^ColorspaceType; 152 | 153 | type 154 | CompositeOperator = ( 155 | UndefinedCompositeOp, 156 | AlphaCompositeOp, 157 | AtopCompositeOp, 158 | BlendCompositeOp, 159 | BlurCompositeOp, 160 | BumpmapCompositeOp, 161 | ChangeMaskCompositeOp, 162 | ClearCompositeOp, 163 | ColorBurnCompositeOp, 164 | ColorDodgeCompositeOp, 165 | ColorizeCompositeOp, 166 | CopyBlackCompositeOp, 167 | CopyBlueCompositeOp, 168 | CopyCompositeOp, 169 | CopyCyanCompositeOp, 170 | CopyGreenCompositeOp, 171 | CopyMagentaCompositeOp, 172 | CopyAlphaCompositeOp, 173 | CopyRedCompositeOp, 174 | CopyYellowCompositeOp, 175 | DarkenCompositeOp, 176 | DarkenIntensityCompositeOp, 177 | DifferenceCompositeOp, 178 | DisplaceCompositeOp, 179 | DissolveCompositeOp, 180 | DistortCompositeOp, 181 | DivideDstCompositeOp, 182 | DivideSrcCompositeOp, 183 | DstAtopCompositeOp, 184 | DstCompositeOp, 185 | DstInCompositeOp, 186 | DstOutCompositeOp, 187 | DstOverCompositeOp, 188 | ExclusionCompositeOp, 189 | HardLightCompositeOp, 190 | HardMixCompositeOp, 191 | HueCompositeOp, 192 | InCompositeOp, 193 | IntensityCompositeOp, 194 | LightenCompositeOp, 195 | LightenIntensityCompositeOp, 196 | LinearBurnCompositeOp, 197 | LinearDodgeCompositeOp, 198 | LinearLightCompositeOp, 199 | LuminizeCompositeOp, 200 | MathematicsCompositeOp, 201 | MinusDstCompositeOp, 202 | MinusSrcCompositeOp, 203 | ModulateCompositeOp, 204 | ModulusAddCompositeOp, 205 | ModulusSubtractCompositeOp, 206 | MultiplyCompositeOp, 207 | NoCompositeOp, 208 | OutCompositeOp, 209 | OverCompositeOp, 210 | OverlayCompositeOp, 211 | PegtopLightCompositeOp, 212 | PinLightCompositeOp, 213 | PlusCompositeOp, 214 | ReplaceCompositeOp, 215 | SaturateCompositeOp, 216 | ScreenCompositeOp, 217 | SoftLightCompositeOp, 218 | SrcAtopCompositeOp, 219 | SrcCompositeOp, 220 | SrcInCompositeOp, 221 | SrcOutCompositeOp, 222 | SrcOverCompositeOp, 223 | ThresholdCompositeOp, 224 | VividLightCompositeOp, 225 | XorCompositeOp, 226 | StereoCompositeOp, 227 | FreezeCompositeOp, 228 | InterpolateCompositeOp, 229 | NegateCompositeOp, 230 | ReflectCompositeOp, 231 | SoftBurnCompositeOp, 232 | SoftDodgeCompositeOp, 233 | StampCompositeOp, 234 | RMSECompositeOp 235 | ); 236 | 237 | PCompositeOperator = ^CompositeOperator; 238 | 239 | type 240 | // Verified with imagemagick 6.7.7-10 241 | CompressionType = ( 242 | UndefinedCompression, 243 | B44ACompression, 244 | B44Compression, 245 | BZipCompression, 246 | DXT1Compression, 247 | DXT3Compression, 248 | DXT5Compression, 249 | FaxCompression, 250 | Group4Compression, 251 | JBIG1Compression, // ISO/IEC std 11544 / ITU-T rec T.82 */ 252 | JBIG2Compression, // ISO/IEC std 14492 / ITU-T rec T.88 */ 253 | JPEG2000Compression, // ISO/IEC std 15444-1 */ 254 | JPEGCompression, 255 | LosslessJPEGCompression, 256 | LZMACompression, // Lempel-Ziv-Markov chain algorithm */ 257 | LZWCompression, 258 | NoCompression, 259 | PizCompression, 260 | Pxr24Compression, 261 | RLECompression, 262 | ZipCompression, 263 | ZipSCompression, 264 | ZstdCompression, 265 | WebPCompression, 266 | DWAACompression, 267 | DWABCompression, 268 | BC7Compression 269 | ); 270 | 271 | PCompressionType = ^CompressionType; 272 | 273 | type 274 | DisposeType = ( 275 | UnrecognizedDispose = 0, 276 | UndefinedDispose = 0, 277 | NoneDispose = 1, 278 | BackgroundDispose = 2, 279 | PreviousDispose = 3 280 | ); 281 | 282 | type 283 | PDisposeType = ^DisposeType; 284 | 285 | type 286 | EndianType = ( 287 | UndefinedEndian, 288 | LSBEndian, 289 | MSBEndian 290 | ); 291 | 292 | PEndianType = ^EndianType; 293 | 294 | type 295 | ExceptionType = ( 296 | UndefinedException, 297 | WarningException = 300, 298 | ResourceLimitWarning = 300, 299 | TypeWarning = 305, 300 | OptionWarning = 310, 301 | DelegateWarning = 315, 302 | MissingDelegateWarning = 320, 303 | CorruptImageWarning = 325, 304 | FileOpenWarning = 330, 305 | BlobWarning = 335, 306 | StreamWarning = 340, 307 | CacheWarning = 345, 308 | CoderWarning = 350, 309 | FilterWarning = 352, 310 | ModuleWarning = 355, 311 | DrawWarning = 360, 312 | ImageWarning = 365, 313 | WandWarning = 370, 314 | RandomWarning = 375, 315 | XServerWarning = 380, 316 | MonitorWarning = 385, 317 | RegistryWarning = 390, 318 | ConfigureWarning = 395, 319 | PolicyWarning = 399, 320 | ErrorException = 400, 321 | ResourceLimitError = 400, 322 | TypeError = 405, 323 | OptionError = 410, 324 | DelegateError = 415, 325 | MissingDelegateError = 420, 326 | CorruptImageError = 425, 327 | FileOpenError = 430, 328 | BlobError = 435, 329 | StreamError = 440, 330 | CacheError = 445, 331 | CoderError = 450, 332 | FilterError = 452, 333 | ModuleError = 455, 334 | DrawError = 460, 335 | ImageError = 465, 336 | WandError = 470, 337 | RandomError = 475, 338 | XServerError = 480, 339 | MonitorError = 485, 340 | RegistryError = 490, 341 | ConfigureError = 495, 342 | PolicyError = 499, 343 | FatalErrorException = 700, 344 | ResourceLimitFatalError = 700, 345 | TypeFatalError = 705, 346 | OptionFatalError = 710, 347 | DelegateFatalError = 715, 348 | MissingDelegateFatalError = 720, 349 | CorruptImageFatalError = 725, 350 | FileOpenFatalError = 730, 351 | BlobFatalError = 735, 352 | StreamFatalError = 740, 353 | CacheFatalError = 745, 354 | CoderFatalError = 750, 355 | FilterFatalError = 752, 356 | ModuleFatalError = 755, 357 | DrawFatalError = 760, 358 | ImageFatalError = 765, 359 | WandFatalError = 770, 360 | RandomFatalError = 775, 361 | XServerFatalError = 780, 362 | MonitorFatalError = 785, 363 | RegistryFatalError = 790, 364 | ConfigureFatalError = 795, 365 | PolicyFatalError = 799 366 | ); 367 | 368 | type 369 | PExceptionType = ^ExceptionType; 370 | 371 | type 372 | FilterType = ( 373 | UndefinedFilter, 374 | PointFilter, 375 | BoxFilter, 376 | TriangleFilter, 377 | HermiteFilter, 378 | HannFilter, 379 | HammingFilter, 380 | BlackmanFilter, 381 | GaussianFilter, 382 | QuadraticFilter, 383 | CubicFilter, 384 | CatromFilter, 385 | MitchellFilter, 386 | JincFilter, 387 | SincFilter, 388 | SincFastFilter, 389 | KaiserFilter, 390 | WelchFilter, 391 | ParzenFilter, 392 | BohmanFilter, 393 | BartlettFilter, 394 | LagrangeFilter, 395 | LanczosFilter, 396 | LanczosSharpFilter, 397 | Lanczos2Filter, 398 | Lanczos2SharpFilter, 399 | RobidouxFilter, 400 | RobidouxSharpFilter, 401 | CosineFilter, 402 | SplineFilter, 403 | LanczosRadiusFilter, 404 | CubicSplineFilter, 405 | SentinelFilter // a count of all the filters, not a real filter */ 406 | ); 407 | 408 | PFilterType = ^FilterType; 409 | 410 | type 411 | GravityType = ( 412 | UndefinedGravity, 413 | ForgetGravity = 0, 414 | NorthWestGravity = 1, 415 | NorthGravity = 2, 416 | NorthEastGravity = 3, 417 | WestGravity = 4, 418 | CenterGravity = 5, 419 | EastGravity = 6, 420 | SouthWestGravity = 7, 421 | SouthGravity = 8, 422 | SouthEastGravity = 9 423 | ); 424 | 425 | type 426 | PGravityType = ^GravityType; 427 | 428 | type ImageType = ( 429 | UndefinedType, 430 | BilevelType, 431 | GrayscaleType, 432 | GrayscaleAlphaType, 433 | PaletteType, 434 | PaletteAlphaType, 435 | TrueColorType, 436 | TrueColorAlphaType, 437 | ColorSeparationType, 438 | ColorSeparationAlphaType, 439 | OptimizeType, 440 | PaletteBilevelAlphaType 441 | ); 442 | 443 | PImageType = ^ImageType; 444 | 445 | type 446 | InterlaceType = ( 447 | UndefinedInterlace, 448 | NoInterlace, 449 | LineInterlace, 450 | PlaneInterlace, 451 | PartitionInterlace, 452 | GIFInterlace, 453 | JPEGInterlace, 454 | PNGInterlace 455 | ); 456 | 457 | PInterlaceType = ^InterlaceType; 458 | 459 | type 460 | OrientationType = ( 461 | UndefinedOrientation, 462 | TopLeftOrientation, 463 | TopRightOrientation, 464 | BottomRightOrientation, 465 | BottomLeftOrientation, 466 | LeftTopOrientation, 467 | RightTopOrientation, 468 | RightBottomOrientation, 469 | LeftBottomOrientation 470 | ); 471 | 472 | POrientationType = ^OrientationType; 473 | 474 | type PreviewType = ( 475 | UndefinedPreview, 476 | RotatePreview, 477 | ShearPreview, 478 | RollPreview, 479 | HuePreview, 480 | SaturationPreview, 481 | BrightnessPreview, 482 | GammaPreview, 483 | SpiffPreview, 484 | DullPreview, 485 | GrayscalePreview, 486 | QuantizePreview, 487 | DespecklePreview, 488 | ReduceNoisePreview, 489 | AddNoisePreview, 490 | SharpenPreview, 491 | BlurPreview, 492 | ThresholdPreview, 493 | EdgeDetectPreview, 494 | SpreadPreview, 495 | SolarizePreview, 496 | ShadePreview, 497 | RaisePreview, 498 | SegmentPreview, 499 | SwirlPreview, 500 | ImplodePreview, 501 | WavePreview, 502 | OilPaintPreview, 503 | CharcoalDrawingPreview, 504 | JPEGPreview 505 | ); 506 | 507 | PPreviewType = ^PreviewType; 508 | 509 | type RenderingIntent = ( 510 | UndefinedIntent, 511 | SaturationIntent, 512 | PerceptualIntent, 513 | AbsoluteIntent, 514 | RelativeIntent 515 | ); 516 | 517 | PRenderingIntent = ^RenderingIntent; 518 | 519 | type ResolutionType = ( 520 | UndefinedResolution, 521 | PixelsPerInchResolution, 522 | PixelsPerCentimeterResolution 523 | ); 524 | 525 | PResolutionType = ^ResolutionType; 526 | 527 | type TimerState = ( 528 | UndefinedTimerState, 529 | StoppedTimerState, 530 | RunningTimerState 531 | ); 532 | 533 | PTimerState = ^TimerState; 534 | 535 | type 536 | AffineMatrix = record 537 | sx, rx, ry, sy, tx, ty: double; 538 | end; 539 | 540 | PAffineMatrix = ^AffineMatrix; 541 | 542 | type 543 | IndexPacket = Quantum; 544 | 545 | type 546 | PixelPacket = record 547 | {$ifdef WORDS_BIGENDIAN} 548 | red, green, blue, alpha, black: Quantum; 549 | {$else} 550 | blue, green, red, alpha, black: Quantum; 551 | {$endif} 552 | end; 553 | 554 | PPixelPacket = ^PixelPacket; 555 | 556 | type 557 | ColorPacket = record 558 | pixel: PixelPacket; 559 | index: IndexPacket; 560 | count: culong; 561 | end; 562 | 563 | PColorPacket = ^ColorPacket; 564 | 565 | type 566 | ErrorInfo = record 567 | mean_error_per_pixel, normalized_mean_error, normalized_maximum_error: double; 568 | end; 569 | 570 | type 571 | PrimaryInfo = record 572 | x, y, z: double; 573 | end; 574 | 575 | type 576 | ProfileInfo = record 577 | end; 578 | 579 | PProfileInfo = ^ProfileInfo; 580 | 581 | type 582 | RectangleInfo = record 583 | width, height: culong; 584 | x, y: culong; 585 | end; 586 | 587 | type 588 | SegmentInfo = record 589 | x1, y1, x2, y2: double; 590 | end; 591 | 592 | type 593 | Timer = record 594 | start, stop, total: double; 595 | end; 596 | 597 | PTimer = ^Timer; 598 | 599 | type 600 | TimerInfo = record 601 | user, elapsed: Timer; 602 | state: TimerState; 603 | signature: culong; 604 | end; 605 | 606 | PTimerInfo = ^TimerInfo; 607 | 608 | type 609 | ChromaticityInfo = record 610 | red_primary, green_primary, blue_primary, white_point: PrimaryInfo; 611 | end; 612 | 613 | type 614 | ExceptionInfo = record 615 | severity: ExceptionType; 616 | error_number: Shortint; 617 | //severity: culong; 618 | //error_number: culong; 619 | reason, description: PAnsiChar; 620 | exceptions: Pointer; 621 | relinquish: MagickBooleanType; 622 | semaphore: Pointer; //PSemaphoreInfo; 623 | signature: culong; 624 | end; 625 | 626 | PExceptionInfo = ^ExceptionInfo; 627 | 628 | //typedef struct _Ascii85Info _Ascii85Info_; 629 | 630 | //typedef struct _BlobInfo _BlobInfo_; 631 | type 632 | PointInfo = record 633 | x, y: double; 634 | end; 635 | 636 | PPointInfo = ^PointInfo; 637 | 638 | const MaxPixelChannels = 32; 639 | 640 | type 641 | PixelChannel = ( 642 | UndefinedPixelChannel = 0, 643 | RedPixelChannel = 0, 644 | CyanPixelChannel = 0, 645 | GrayPixelChannel = 0, 646 | LPixelChannel = 0, 647 | LabelPixelChannel = 0, 648 | YPixelChannel = 0, 649 | aPixelChannel = 1, 650 | GreenPixelChannel = 1, 651 | MagentaPixelChannel = 1, 652 | CbPixelChannel = 1, 653 | bPixelChannel = 2, 654 | BluePixelChannel = 2, 655 | YellowPixelChannel = 2, 656 | CrPixelChannel = 2, 657 | BlackPixelChannel = 3, 658 | AlphaPixelChannel = 4, 659 | IndexPixelChannel = 5, 660 | ReadMaskPixelChannel = 6, 661 | WriteMaskPixelChannel = 7, 662 | MetaPixelChannel = 8, 663 | CompositeMaskPixelChannel = 9, 664 | IntensityPixelChannel = MaxPixelChannels, // ???? */ 665 | CompositePixelChannel = MaxPixelChannels, // ???? */ 666 | SyncPixelChannel = MaxPixelChannels+1 // not a real channel */ 667 | ); 668 | 669 | type 670 | PixelTrait = ( 671 | UndefinedPixelTrait = $000000, 672 | CopyPixelTrait = $000001, 673 | UpdatePixelTrait = $000002, 674 | BlendPixelTrait = $000004 675 | ); 676 | 677 | type 678 | PixelChannelMap = record 679 | channel: PixelChannel; 680 | traits: PixelTrait; 681 | offset: cint; 682 | 683 | end; 684 | PPixelChannelMap = ^PixelChannelMap; 685 | 686 | type 687 | PixelIntensityMethod = ( 688 | UndefinedPixelIntensityMethod = 0, 689 | AveragePixelIntensityMethod, 690 | BrightnessPixelIntensityMethod, 691 | LightnessPixelIntensityMethod, 692 | MSPixelIntensityMethod, 693 | Rec601LumaPixelIntensityMethod, 694 | Rec601LuminancePixelIntensityMethod, 695 | Rec709LumaPixelIntensityMethod, 696 | Rec709LuminancePixelIntensityMethod, 697 | RMSPixelIntensityMethod 698 | ); 699 | 700 | type 701 | PixelInterpolateMethod = ( 702 | UndefinedInterpolatePixel, 703 | AverageInterpolatePixel, // Average 4 nearest neighbours */ 704 | Average9InterpolatePixel, // Average 9 nearest neighbours */ 705 | Average16InterpolatePixel, // Average 16 nearest neighbours */ 706 | BackgroundInterpolatePixel, // Just return background color */ 707 | BilinearInterpolatePixel, // Triangular filter interpolation */ 708 | BlendInterpolatePixel, // blend of nearest 1, 2 or 4 pixels */ 709 | CatromInterpolatePixel, // Catmull-Rom interpolation */ 710 | IntegerInterpolatePixel, // Integer (floor) interpolation */ 711 | MeshInterpolatePixel, // Triangular Mesh interpolation */ 712 | NearestInterpolatePixel, // Nearest Neighbour Only */ 713 | SplineInterpolatePixel // Cubic Spline (blurred) interpolation */ 714 | ); 715 | 716 | 717 | type 718 | MagickProgressMonitor = function (const str: PAnsiChar; const para: MagickOffsetType; 719 | const sizetype: MagickSizeType; param: Pointer): PMagickBooleanType; 720 | 721 | type 722 | PixelInfo = record 723 | storage_class: ClassType; 724 | colorspace: ColorspaceType; 725 | alpha_trait: PixelTrait; 726 | fuzz: double; 727 | depth: culong; 728 | count: MagickSizeType; 729 | red, green, blue, black, alpha, index: MagickRealType; 730 | end; 731 | 732 | type 733 | PImageInfo = ^ImageInfo; 734 | PImage = ^Image; 735 | 736 | Image = record 737 | storage_class: ClassType; 738 | colorspace: ColorspaceType; 739 | compression: CompressionType; 740 | quality: culong; 741 | orientation: OrientationType; 742 | taint: MagickBooleanType; 743 | columns, rows, depth, colors: culong; 744 | colormap: PPixelPacket; 745 | alpha_coloer, background_color, border_color, transparent_color: PixelPacket; 746 | gamma: double; 747 | chromaticity: ChromaticityInfo; 748 | rendering_intent: RenderingIntent; 749 | profiles: Pointer; 750 | units: ResolutionType; 751 | montage, directory, geometry: PAnsiChar; 752 | offset: cint; 753 | //x_resolution, y_resolution: double; 754 | resolution: PointInfo; 755 | page, extract_info: RectangleInfo; // deprecated 756 | fuzz: double; 757 | filter: FilterType; 758 | intensity: PixelIntensityMethod; 759 | interlace: InterlaceType; 760 | endian: EndianType; 761 | gravity: GravityType; 762 | compose: CompositeOperator; 763 | dispose: DisposeType; 764 | scene, delay, duration: culong; 765 | ticks_per_second: cint; 766 | iterations, total_colors: culong; 767 | start_loop: cint; 768 | interpolate: PixelInterpolateMethod; 769 | black_point_compensation: MagickBooleanType; 770 | tile_offset: RectangleInfo; 771 | type_: ImageType; 772 | dither: MagickBooleanType; 773 | extent: MagickSizeType; 774 | ping: MagickBooleanType; 775 | read_mask, write_mask: MagickBooleanType; 776 | alpha_trait: PixelTrait; 777 | number_channels, number_meta_channels, metacontent_extent: culong; 778 | channel_mask: ChannelType; 779 | channel_map: PPixelChannelMap; 780 | cache: Pointer; 781 | error: ErrorInfo; 782 | timer: TimerInfo; 783 | progress_monitor: MagickProgressMonitor; 784 | client_data: Pointer; 785 | ascii85: Pointer; //_Ascii85Info_ 786 | generic_profile: PProfileInfo; 787 | properties, artifacts: Pointer; 788 | filename, magick_filename, magick: array[1..MaxTextExtent] of char; 789 | magick_columns, magick_rows: culong; 790 | blob: Pointer; // _BlobInfo_ 791 | timestamp: culong; // ??? 792 | debug: MagickBooleanType; 793 | reference_count: Longint; 794 | semaphore: Pointer; //PSemaphoreInfo; 795 | image_info: PImageInfo; 796 | list, previous, next: PImage; 797 | signature: culong; 798 | matte_color: PixelInfo; 799 | composite_mask: MagickBooleanType; 800 | mask_trait: PixelTrait; 801 | channels: ChannelType; 802 | end; 803 | 804 | ImageInfo = record 805 | compression: CompressionType; 806 | orientation: OrientationType; 807 | temporary, adjoin, affirm, antialias: MagickBooleanType; 808 | size, extract, page, scenes: PAnsiChar; 809 | scene, number_scenes, depth: culong; 810 | interlace: InterlaceType; 811 | endian: EndianType; 812 | units: ResolutionType; 813 | quality: culong; 814 | sampling_factor, server_name, font, texture, density: PAnsiChar; 815 | pointsize, fuzz: double; 816 | alpha_color, background_color, border_color, transparent_color: PixelInfo; 817 | dither, monochrome: MagickBooleanType; 818 | // colors: culong; 819 | colorspace: ColorspaceType; 820 | compose: CompositeOperator; 821 | type_: ImageType ; 822 | // preview_type: PreviewType; 823 | // group: Longint; 824 | ping, verbose: MagickBooleanType; 825 | // view, authenticate: PAnsiChar; 826 | channel: ChannelType; 827 | // attributes: PImage; 828 | options: Pointer; 829 | profile: Pointer; 830 | synchronize: MagickBooleanType; 831 | progress_monitor: MagickProgressMonitor; 832 | client_data, cache: Pointer; 833 | stream: culong; //StreamHandler; 834 | file_: Pointer; // *file 835 | blob: Pointer; 836 | length: cint; 837 | magick, unique, filename: array[1..MaxTextExtent] of char; 838 | debug: MagickBooleanType; 839 | signature: culong; 840 | custom_stream: Pointer; // *CustomStreamInfo 841 | matte_color: PixelInfo; 842 | end; 843 | 844 | 845 | //type 846 | // size_t = PStreamHandler(procedure (const image: PImage; 847 | // const param: Pointer; const) ); 848 | 849 | 850 | 851 | -------------------------------------------------------------------------------- /Source/pixel.inc: -------------------------------------------------------------------------------- 1 | { 2 | Copyright 1999-2005 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | ImageMagick image constitute methods. 17 | } 18 | 19 | //#include 20 | 21 | type 22 | QuantumType = ( 23 | UndefinedQuantum, 24 | AlphaQuantum, 25 | BGRAQuantum, 26 | BGROQuantum, 27 | BGRQuantum, 28 | BlackQuantum, 29 | BlueQuantum, 30 | CbYCrAQuantum, 31 | CbYCrQuantum, 32 | CbYCrYQuantum, 33 | CMYKAQuantum, 34 | CMYKOQuantum, 35 | CMYKQuantum, 36 | CyanQuantum, 37 | GrayAlphaQuantum, 38 | GrayQuantum, 39 | GreenQuantum, 40 | IndexAlphaQuantum, 41 | IndexQuantum, 42 | MagentaQuantum, 43 | OpacityQuantum, 44 | RedQuantum, 45 | RGBAQuantum, 46 | RGBOQuantum, 47 | RGBPadQuantum, 48 | RGBQuantum, 49 | YellowQuantum 50 | ); 51 | 52 | type 53 | LongPixelPacketXX = record 54 | red, 55 | green, 56 | blue, 57 | opacity, 58 | index: culong; 59 | end; 60 | 61 | type 62 | MagickPixelPacketXX = record 63 | storage_class: ClassType; // Added after 6.2 64 | 65 | colorspace: ColorspaceType; 66 | 67 | matte: MagickBooleanType; 68 | 69 | fuzz: double; 70 | 71 | depth: culong; 72 | 73 | red, 74 | green, 75 | blue, 76 | opacity, 77 | index: MagickRealType; 78 | end; 79 | 80 | PMagickPixelPacketXX = ^MagickPixelPacketXX; 81 | 82 | {extern MagickExport MagickBooleanType 83 | ExportImagePixels(const Image *,const long,const long,const unsigned long, 84 | const unsigned long,const char *,const StorageType,void *,ExceptionInfo *), 85 | ExportQuantumPixels(Image *,const QuantumType,const size_t, 86 | const unsigned char *), 87 | ImportImagePixels(Image *,const long,const long,const unsigned long, 88 | const unsigned long,const char *,const StorageType,const void *), 89 | ImportQuantumPixels(Image *,const QuantumType,const size_t,unsigned char *);} 90 | 91 | -------------------------------------------------------------------------------- /Source/pixel_iterator.inc: -------------------------------------------------------------------------------- 1 | { 2 | Copyright 1999-2005 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | Pixel Iterator Methods. 17 | } 18 | 19 | type 20 | PixelIterator = record 21 | id: culong; 22 | 23 | name: array[0..MaxTextExtent] of char; 24 | 25 | exception: ExceptionInfo; 26 | 27 | view: CacheView; 28 | 29 | region: RectangleInfo; 30 | 31 | active: MagickBooleanType; 32 | 33 | y: cint; 34 | 35 | pixel_wands: PPPixelWand; 36 | 37 | debug: MagickBooleanType; 38 | 39 | signature: culong; 40 | end; 41 | 42 | PPixelIterator = ^PixelIterator; 43 | 44 | var 45 | PixelGetIteratorException: function(const iterator: PPixeliterator; 46 | severity: PExceptionType): PAnsiChar; cdecl; 47 | 48 | IsPixelIterator: function(const iterator: PPixeliterator): MagickBooleanType; cdecl; 49 | PixelClearIteratorException: function(iterator: PPixeliterator): MagickBooleanType; cdecl; 50 | PixelSetIteratorRow: function(iterator: PPixeliterator; 51 | const row: cint): MagickBooleanType; cdecl; 52 | PixelSyncIterator: function(iterator: PPixeliterator): MagickBooleanType; cdecl; 53 | 54 | DestroyPixelIterator: function(iterator: PPixeliterator): PPixelIterator; cdecl; 55 | NewPixelIterator: function(wand: PMagickWand): PPixelIterator; cdecl; 56 | NewPixelRegionIterator: function( 57 | wand: PMagickWand; const x, y: cint; const columns, rows: culong; 58 | const modify: MagickBooleanType): PPixelIterator; cdecl; 59 | 60 | PixelGetNextIteratorRow: function(iterator: PPixeliterator; var wandCount: culong): PPPixelWand; cdecl; 61 | PixelGetPreviousIteratorRow: function(iterator: PPixeliterator; var wandCount: culong): PPPixelWand; cdecl; 62 | 63 | ClearPixelIterator: procedure(iterator: PPixeliterator); cdecl; 64 | PixelResetIterator: procedure(iterator: PPixeliterator); cdecl; 65 | PixelSetFirstIteratorRow: procedure(iterator: PPixeliterator); cdecl; 66 | PixelSetLastIteratorRow: procedure(iterator: PPixeliterator); cdecl; 67 | 68 | { 69 | Deprecated. 70 | } 71 | {extern WandExport char 72 | *PixelIteratorGetException(const PixelIterator *,ExceptionType *); 73 | 74 | extern WandExport PixelWand 75 | **PixelGetNextRow(PixelIterator *);} 76 | 77 | -------------------------------------------------------------------------------- /Source/pixel_wand.inc: -------------------------------------------------------------------------------- 1 | { 2 | Copyright 1999-2005 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | ImageMagick pixel wand API. 17 | } 18 | 19 | 20 | { 21 | Declaration from pixel-wand.c 22 | } 23 | type 24 | PixelWand = record 25 | id: culong; 26 | 27 | name: array[1..MaxTextExtent] of char; 28 | 29 | exception: ExceptionInfo; 30 | 31 | pixel: PixelInfo; 32 | 33 | count: culong; 34 | 35 | debug: MagickBooleanType; 36 | 37 | signature: culong; 38 | end; 39 | 40 | PPixelWand = ^PixelWand; 41 | 42 | PPPixelWand = ^PPixelWand; 43 | 44 | PQuantum = ^Quantum; 45 | 46 | var 47 | PixelGetException: function(const wand: PPixelWand; severity: PExceptionType): PAnsiChar; cdecl; 48 | PixelGetColorAsString: function(const wand: PPixelWand): PAnsiChar; cdecl; 49 | PixelGetColorAsNormalizedString: function(const wand: PPixelWand): PAnsiChar; cdecl; 50 | 51 | PixelGetAlpha: function(const wand: PPixelWand): Double; cdecl; 52 | PixelGetBlack: function(const wand: PPixelWand): Double; cdecl; 53 | PixelGetBlue: function(const wand: PPixelWand): Double; cdecl; 54 | PixelGetCyan: function(const wand: PPixelWand): Double; cdecl; 55 | PixelGetFuzz: function(const wand: PPixelWand): Double; cdecl; 56 | PixelGetGreen: function(const wand: PPixelWand): Double; cdecl; 57 | PixelGetMagenta: function(const wand: PPixelWand): Double; cdecl; 58 | //PixelGetOpacity: function(const wand: PPixelWand): Double; cdecl; //Function name => PixelGetAlpha 59 | PixelGetRed: function(const wand: PPixelWand): Double; cdecl; 60 | PixelGetYellow: function(const wand: PPixelWand): Double; cdecl; 61 | 62 | PixelGetExceptionType: function(const wand: PPixelWand): ExceptionType; cdecl; 63 | 64 | PixelGetIndex: function(const wand: PPixelWand): Quantum; cdecl; 65 | 66 | IsPixelWand: function(const wand: PPixelWand): MagickBooleanType; cdecl; 67 | IsPixelWandSimilar: function(p: PPixelWand; q: PPixelWand; const fuzz: double): MagickBooleanType; cdecl; 68 | PixelClearException: function(wand: PPixelWand): MagickBooleanType; cdecl; 69 | PixelSetColor: function(wand: PPixelWand; const color: PAnsiChar): MagickBooleanType; cdecl; 70 | 71 | PixelGetPixel: function(const wand: PPixelWand): PixelInfo; cdecl; 72 | 73 | ClonePixelWand: function(const wand: PPixelWand): PPixelWand; cdecl; 74 | ClonePixelWands: function(const wand: PPPixelWand; const number_wands: culong): PPPixelWand; cdecl; 75 | DestroyPixelWand: function(wand: PPixelWand): PPixelWand; cdecl; 76 | DestroyPixelWands: function(wand: PPPixelWand; const number_wands: culong): PPPixelWand; cdecl; 77 | NewPixelWand: function: PPixelWand; cdecl; 78 | NewPixelWands: function(const number_wands: culong): PPPixelWand; cdecl; 79 | 80 | PixelGetAlphaQuantum: function(const wand: PPixelWand): Quantum; cdecl; 81 | PixelGetBlackQuantum: function(const wand: PPixelWand): Quantum; cdecl; 82 | PixelGetBlueQuantum: function(const wand: PPixelWand): Quantum; cdecl; 83 | PixelGetCyanQuantum: function(const wand: PPixelWand): Quantum; cdecl; 84 | PixelGetGreenQuantum: function(const wand: PPixelWand): Quantum; cdecl; 85 | PixelGetMagentaQuantum: function(const wand: PPixelWand): Quantum; cdecl; 86 | //PixelGetOpacityQuantum: function(const wand: PPixelWand): Quantum; cdecl; //Function name => PixelGetAlphaQuantum 87 | PixelGetRedQuantum: function(const wand: PPixelWand): Quantum; cdecl; 88 | PixelGetYellowQuantum: function(const wand: PPixelWand): Quantum; cdecl; 89 | 90 | PixelGetColorCount: function(const wand: PPixelWand): culong; cdecl; 91 | 92 | ClearPixelWand: procedure(wand: PPixelWand); cdecl; 93 | PixelGetHSL: procedure(wand: PPixelWand; const hue: PDouble; const saturation: PDouble; const lightness: PDouble); cdecl; 94 | PixelGetMagickColor: procedure(const wand: PPixelWand; color: PPixelInfo); cdecl; 95 | PixelGetQuantumPacket: procedure(const wand: PPixelWand; packet: PPixelInfo); cdecl; 96 | PixelGetQuantumPixel: procedure(const image: PImage; const wand: PPixelWand; pixel: PQuantum); cdecl; 97 | PixelSetAlpha: procedure(wand: PPixelWand; const opacity: Double); cdecl; 98 | PixelSetAlphaQuantum: procedure(wand: PPixelWand; const opacity: Quantum); cdecl; 99 | PixelSetBlack: procedure(wand: PPixelWand; const opacity: Double); cdecl; 100 | PixelSetBlackQuantum: procedure(wand: PPixelWand; const opacity: Quantum); cdecl; 101 | PixelSetBlue: procedure(wand: PPixelWand; const opacity: Double); cdecl; 102 | PixelSetBlueQuantum: procedure(wand: PPixelWand; const opacity: Quantum); cdecl; 103 | PixelSetColorFromWand: procedure(wand: PPixelWand; const color: PPixelWand); cdecl; 104 | PixelSetColorCount: procedure(wand: PPixelWand; const count: culong); cdecl; 105 | PixelSetCyan: procedure(wand: PPixelWand; const opacity: Double); cdecl; 106 | PixelSetCyanQuantum: procedure(wand: PPixelWand; const opacity: Quantum); cdecl; 107 | PixelSetFuzz: procedure(wand: PPixelWand; const fuzz: Double); cdecl; 108 | PixelSetGreen: procedure(wand: PPixelWand; const opacity: Double); cdecl; 109 | PixelSetGreenQuantum: procedure(wand: PPixelWand; const opacity: Quantum); cdecl; 110 | PixelSetHSL: procedure(wand: PPixelWand; const hue: Double; const saturation: Double; const lightness: Double); cdecl; 111 | PixelSetIndex: procedure(wand: PPixelWand; const index: IndexPacket); cdecl; 112 | PixelSetMagenta: procedure(wand: PPixelWand; const opacity: Double); cdecl; 113 | PixelSetMagentaQuantum: procedure(wand: PPixelWand; const opacity: Quantum); cdecl; 114 | PixelSetPixelColor: procedure(wand: PPixelWand; const color: PPixelInfo); cdecl; 115 | //PixelSetOpacity: procedure(wand: PPixelWand; const opacity: Double); cdecl; => Alpha 116 | //PixelSetOpacityQuantum: procedure(wand: PPixelWand; const opacity: Quantum); cdecl; => Alpha 117 | PixelSetPixelColor: procedure(wand: PPixelWand; const color: PPixelInfo); cdecl; 118 | PixelSetQuantumPixel: procedure(const image: PImage; const pixel: PQuantum; wand: PPixelWand); cdecl; 119 | PixelSetRed: procedure(wand: PPixelWand; const opacity: Double); cdecl; 120 | PixelSetRedQuantum: procedure(wand: PPixelWand; const opacity: Quantum); cdecl; 121 | PixelSetYellow: procedure(wand: PPixelWand; const opacity: Double); cdecl; 122 | PixelSetYellowQuantum: procedure(wand: PPixelWand; const opacity: Quantum); cdecl; 123 | 124 | // Considered a private method in newer versions (after 6.2) 125 | //PixelGetMagickColor: procedure(const wand: PPixelWand; packet: PMagickPixelPacket); cdecl; 126 | 127 | 128 | -------------------------------------------------------------------------------- /Source/quantize.inc: -------------------------------------------------------------------------------- 1 | { 2 | Copyright 1999-2005 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | ImageMagick image quantization methods. 17 | } 18 | 19 | type 20 | DitherMethod = ( 21 | UndefinedDitherMethod, 22 | NoDitherMethod, 23 | RiemersmaDitherMethod, 24 | FloydSteinbergDitherMethod 25 | ); 26 | 27 | type 28 | QuantizeInfo = record 29 | number_colors: culong; 30 | 31 | tree_depth: culong; 32 | 33 | colorspace: ColorspaceType; 34 | 35 | dither_method: DitherMethod; 36 | 37 | measure_error: MagickBooleanType; 38 | 39 | signature: culong; 40 | end; 41 | PQuantizeInfo = ^QuantizeInfo; 42 | 43 | {extern MagickExport MagickBooleanType 44 | GetImageQuantizeError(Image *), 45 | MapImage(Image *,const Image *,const MagickBooleanType), 46 | MapImages(Image *,const Image *,const MagickBooleanType), 47 | OrderedDitherImage(Image *), 48 | PosterizeImage(Image *,const unsigned long,const MagickBooleanType), 49 | QuantizeImage(const QuantizeInfo *,Image *), 50 | QuantizeImages(const QuantizeInfo *,Image *); 51 | 52 | extern MagickExport QuantizeInfo 53 | *CloneQuantizeInfo(const QuantizeInfo *), 54 | *DestroyQuantizeInfo(QuantizeInfo *); 55 | 56 | extern MagickExport void 57 | CompressImageColormap(Image *), 58 | GetQuantizeInfo(QuantizeInfo *);} 59 | -------------------------------------------------------------------------------- /Source/semaphore.inc: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright @ 2000 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. You may 6 | obtain a copy of the License at 7 | 8 | https://imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | MagickCore methods to lock and unlock semaphores. 16 | */ 17 | 18 | type 19 | SemaphoreInfo = record // 20 | end; 21 | 22 | PSemaphoreInfo = ^SemaphoreInfo; 23 | PPSemaphoreInfo = ^PSemaphoreInfo; 24 | 25 | var 26 | //extern MagickExport 27 | 28 | AcquireSemaphoreInfo: function(): PSemaphoreInfo; cdecl; 29 | 30 | ActivateSemaphoreInfo: procedure(PPSemaphoreInfo); cdecl; 31 | LockSemaphoreInfo: procedure(PSemaphoreInfo); cdecl; 32 | RelinquishSemaphoreInfo: procedure(PPSemaphoreInfo); cdecl; 33 | UnlockSemaphoreInfo: procedure(PSemaphoreInfo); cdecl; 34 | 35 | -------------------------------------------------------------------------------- /Source/statistic.inc: -------------------------------------------------------------------------------- 1 | { 2 | Copyright 1999-2005 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | ImageMagick image methods. 17 | } 18 | 19 | {#define MaximumNumberOfImageMoments 8 20 | #define MaximumNumberOfPerceptualColorspaces 6 21 | #define MaximumNumberOfPerceptualHashes 7 } 22 | 23 | const 24 | MaximumNumberOfImageMoments = 8; 25 | MaximumNumberOfPerceptualColorspaces = 6; 26 | MaximumNumberOfPerceptualHashes = 7; 27 | 28 | 29 | type 30 | ChannelStatistics = record 31 | depth: culong; 32 | area, 33 | minima, 34 | maxima, 35 | sum, 36 | sum_squared, 37 | sum_cubed, 38 | sum_fourth_power, 39 | mean, 40 | variance, 41 | standard_deviation, 42 | kurtosis, 43 | skewness, 44 | entropy, 45 | median : double; 46 | end; 47 | 48 | PChannelStatistics = ^ChannelStatistics; 49 | 50 | ChannelMoments = record 51 | invariant[MaximumNumberOfImageMoments+1]: double; 52 | centroid, 53 | ellipse_axis: PointInfo; 54 | ellipse_angle, 55 | ellipse_eccentricity, 56 | ellipse_intensity: double; 57 | end; 58 | 59 | PChannelMoments = ^ChannelMoments; 60 | 61 | ChannelPerceptualHash = record 62 | srgb_hu_phash[MaximumNumberOfImageMoments+1], 63 | hclp_hu_phash[MaximumNumberOfImageMoments+1]: double; 64 | number_colorspaces: culong; 65 | colorspace[MaximumNumberOfPerceptualColorspaces+1]: ColorspaceType; 66 | phash[MaximumNumberOfPerceptualColorspaces+1][MaximumNumberOfImageMoments+1]: double; 67 | number_channels: culong; 68 | end; 69 | 70 | PChannelPerceptualHash = ^ChannelPerceptualHash; 71 | 72 | MagickEvaluateOperator = (UndefinedEvaluateOperator, 73 | AbsEvaluateOperator, 74 | AddEvaluateOperator, 75 | AddModulusEvaluateOperator, 76 | AndEvaluateOperator, 77 | CosineEvaluateOperator, 78 | DivideEvaluateOperator, 79 | ExponentialEvaluateOperator, 80 | GaussianNoiseEvaluateOperator, 81 | ImpulseNoiseEvaluateOperator, 82 | LaplacianNoiseEvaluateOperator, 83 | LeftShiftEvaluateOperator, 84 | LogEvaluateOperator, 85 | MaxEvaluateOperator, 86 | MeanEvaluateOperator, 87 | MedianEvaluateOperator, 88 | MinEvaluateOperator, 89 | MultiplicativeNoiseEvaluateOperator, 90 | MultiplyEvaluateOperator, 91 | OrEvaluateOperator, 92 | PoissonNoiseEvaluateOperator, 93 | PowEvaluateOperator, 94 | RightShiftEvaluateOperator, 95 | RootMeanSquareEvaluateOperator, 96 | SetEvaluateOperator, 97 | SineEvaluateOperator, 98 | SubtractEvaluateOperator, 99 | SumEvaluateOperator, 100 | ThresholdBlackEvaluateOperator, 101 | ThresholdEvaluateOperator, 102 | ThresholdWhiteEvaluateOperator, 103 | UniformNoiseEvaluateOperator, 104 | XorEvaluateOperator, 105 | InverseLogEvaluateOperator); 106 | 107 | MagickFunction = (UndefinedFunction, 108 | ArcsinFunction, 109 | ArctanFunction, 110 | PolynomialFunction, 111 | SinusoidFunction); 112 | 113 | StatisticType = (UndefinedStatistic, 114 | GradientStatistic, 115 | MaximumStatistic, 116 | MeanStatistic, 117 | MedianStatistic, 118 | MinimumStatistic, 119 | ModeStatistic, 120 | NonpeakStatistic, 121 | RootMeanSquareStatistic, 122 | StandardDeviationStatistic, 123 | ContrastStatistic); 124 | 125 | var 126 | //extern MagickExport 127 | GetImageStatistics: function(const image: PImage; exception: PExceptionInfo): PChannelStatistics; cdecl; 128 | GetImageMoments: function(const image: PImage; exception: PExceptionInfo): PChannelMoments; cdecl; 129 | GetImagePerceptualHash: function(const image: PImage; exception: PExceptionInfo): PChannelPerceptualHash; cdecl; 130 | 131 | EvaluateImages: function(const image: PImage; const op: MagickEvaluateOperator; exception: PExceptionInfo): PImage; cdecl; 132 | PolynomialImage: function(const image: PImage; const number_terms: culong; const terms: PDouble; exception: PExceptionInfo): PImage; cdecl; 133 | StatisticImage: function(const image: PImage; const &type: StatisticType; const width: culong; const height: culong; exception: PExceptionInfo): PImage; cdecl; 134 | 135 | EvaluateImage: function(image: PImage; const op: MagickEvaluateOperator; const value: Double; exception: PExceptionInfo): MagickBooleanType; cdecl; 136 | FunctionImage: function(image: PImage; const &function: MagickFunction; const number_parameters: culong; const parameters: PDouble; exception: PExceptionInfo): MagickBooleanType; cdecl; 137 | GetImageEntropy: function(const image: PImage; entropy: PDouble; exception: PExceptionInfo): MagickBooleanType; cdecl; 138 | GetImageExtrema: function(const image: PImage; minima: pculong; maxima: pculong; exception: PExceptionInfo): MagickBooleanType; cdecl; 139 | GetImageMean: function(const image: PImage; mean: PDouble; standard_deviation: PDouble; exception: PExceptionInfo): MagickBooleanType; cdecl; 140 | GetImageMedian: function(const image: PImage; median: PDouble; exception: PExceptionInfo): MagickBooleanType; cdecl; 141 | GetImageKurtosis: function(const image: PImage; kurtosis: PDouble; skewness: PDouble; exception: PExceptionInfo): MagickBooleanType; cdecl; 142 | GetImageRange: function(const image: PImage; minima: PDouble; maxima: PDouble; exception: PExceptionInfo): MagickBooleanType; cdecl; 143 | 144 | -------------------------------------------------------------------------------- /Source/type.inc: -------------------------------------------------------------------------------- 1 | { 2 | Copyright 1999-2005 ImageMagick Studio LLC, a non-profit organization 3 | dedicated to making software imaging solutions freely available. 4 | 5 | You may not use this file except in compliance with the License. 6 | obtain a copy of the License at 7 | 8 | http://www.imagemagick.org/script/license.php 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | ImageMagick image type methods. 17 | } 18 | 19 | type 20 | StretchType = ( 21 | UndefinedStretch, 22 | NormalStretch, 23 | UltraCondensedStretch, 24 | ExtraCondensedStretch, 25 | CondensedStretch, 26 | SemiCondensedStretch, 27 | SemiExpandedStretch, 28 | ExpandedStretch, 29 | ExtraExpandedStretch, 30 | UltraExpandedStretch, 31 | AnyStretch 32 | ); 33 | 34 | type 35 | StyleType = ( 36 | UndefinedStyle, 37 | NormalStyle, 38 | ItalicStyle, 39 | ObliqueStyle, 40 | AnyStyle, 41 | BoldStyle 42 | ); 43 | 44 | type 45 | TypeInfo = record 46 | face: culong; 47 | 48 | path, 49 | name, 50 | description, 51 | family: PAnsiChar; 52 | 53 | style: StyleType; 54 | 55 | stretch: StretchType; 56 | 57 | weight: culong; 58 | 59 | encoding, 60 | foundry, 61 | format, 62 | metrics, 63 | glyphs: PAnsiChar; 64 | 65 | stealth: MagickBooleanType; 66 | 67 | signature: culong; 68 | end; 69 | 70 | {function GetTypeList(const char *,unsigned long *,ExceptionInfo *): PPAnsiChar; external MagickExport; 71 | 72 | extern MagickExport MagickBooleanType 73 | ListTypeInfo(FILE *,ExceptionInfo *); 74 | 75 | extern MagickExport const TypeInfo 76 | *GetTypeInfo(const char *,ExceptionInfo *), 77 | *GetTypeInfoByFamily(const char *,const StyleType,const StretchType, 78 | const unsigned long,ExceptionInfo *), 79 | **GetTypeInfoList(const char *,unsigned long *,ExceptionInfo *); 80 | 81 | MagickExport void 82 | DestroyTypeList(void);} 83 | 84 | 85 | --------------------------------------------------------------------------------