diff --git a/packages/base/imagemagick/magick/imagemagick.pas b/packages/base/imagemagick/magick/imagemagick.pas index b9f7d96240..3837049e73 100644 --- a/packages/base/imagemagick/magick/imagemagick.pas +++ b/packages/base/imagemagick/magick/imagemagick.pas @@ -16,19 +16,22 @@ ImageMagick Application Programming Interface declarations. Converted from c by: Felipe Monteiro de Carvalho Dez/2005 + + Bug-fixed by Ángel Eduardo García Hernández + Thanks to Marc Geldon and RuBBeR } -{Version 0.2} +{Version 0.4} unit ImageMagick; {$ifdef FPC} {$mode objfpc} + {$PACKRECORDS C} {$endif} interface uses SysUtils; -{$PACKRECORDS C} {$MINENUMSIZE 1} const diff --git a/packages/base/imagemagick/magick/magick_type.inc b/packages/base/imagemagick/magick/magick_type.inc index 169d368157..c6c60e02bc 100644 --- a/packages/base/imagemagick/magick/magick_type.inc +++ b/packages/base/imagemagick/magick/magick_type.inc @@ -25,7 +25,7 @@ const MagickTrue = 1; type - MagickBooleanType = Byte; + MagickBooleanType = Cardinal; PMagickBooleanType = ^MagickBooleanType; @@ -510,9 +510,14 @@ type type ExceptionInfo = record - severity: ExceptionType; - error_number: Shortint; + //severity: ExceptionType; + //error_number: Shortint; + severity: Cardinal; + error_number: Cardinal; reason, description: PChar; + exceptions: Pointer; + relinquish: MagickBooleanType; + semaphore: Pointer; //PSemaphoreInfo; signature: Cardinal; end; @@ -554,7 +559,7 @@ type compose: CompositeOperator; dispose: DisposeType; clip_mask: Pointer; // PImage - scene, delay, iterations, total_colors: Cardinal; + scene, delay, ticks_per_second, iterations, total_colors: Cardinal; start_loop: Integer; error: ErrorInfo; timer: TimerInfo; @@ -565,10 +570,10 @@ type ascii85: Pointer; //_Ascii85Info_ blob: Pointer; // _BlobInfo_ filename, magick_filename, magick: array[1..MaxTextExtent] of char; - magick_columns, magick_rows: Integer; + magick_columns, magick_rows: Cardinal; exception: ExceptionInfo; debug: MagickBooleanType; - reference_count: Integer; + reference_count: Longint; semaphore: Pointer; //PSemaphoreInfo; color_profile, iptc_profile: ProfileInfo; generic_profile: PProfileInfo; @@ -606,7 +611,7 @@ type colorspace: ColorspaceType; type_: ImageType ; preview_type: PreviewType; - group: Integer; + group: Longint; ping, verbose: MagickBooleanType; view, authenticate: PChar; channel: ChannelType; diff --git a/packages/base/imagemagick/magick/quantize.inc b/packages/base/imagemagick/magick/quantize.inc index c9bcf6127d..19059453f9 100644 --- a/packages/base/imagemagick/magick/quantize.inc +++ b/packages/base/imagemagick/magick/quantize.inc @@ -30,6 +30,7 @@ type signature: Cardinal; end; + PQuantizeInfo = ^QuantizeInfo; {extern MagickExport MagickBooleanType GetImageQuantizeError(Image *), diff --git a/packages/base/imagemagick/wand/drawing_wand.inc b/packages/base/imagemagick/wand/drawing_wand.inc index 4a48ed27a2..5939fb7d68 100644 --- a/packages/base/imagemagick/wand/drawing_wand.inc +++ b/packages/base/imagemagick/wand/drawing_wand.inc @@ -106,9 +106,9 @@ function DrawGetFontFamily(const wand: PDrawingWand): PChar; cdecl; external Wan function DrawGetTextEncoding(const wand: PDrawingWand): PChar; cdecl; external WandExport; function DrawGetVectorGraphics(const wand: PDrawingWand): PChar; cdecl; external WandExport; -function DrawGetClipUnits(const wand: PDrawingWand): ClipPathUnits; external WandExport; +function DrawGetClipUnits(const wand: PDrawingWand): ClipPathUnits; cdecl; external WandExport; -function DrawGetTextDecoration(const wand: PDrawingWand): DecorationType; external WandExport; +function DrawGetTextDecoration(const wand: PDrawingWand): DecorationType; cdecl; external WandExport; function DrawGetFillAlpha(const wand: PDrawingWand): double; cdecl; external WandExport; function DrawGetFontSize(const wand: PDrawingWand): double; cdecl; external WandExport; @@ -122,7 +122,7 @@ function PeekDrawingWand(const wand: PDrawingWand): PDrawInfo; cdecl; external W function CloneDrawingWand(const wand: PDrawingWand): PDrawingWand; cdecl; external WandExport; function DestroyDrawingWand(wand: PDrawingWand): PDrawingWand; cdecl; external WandExport; { Sem documentação -function DrawAllocateWand(const DrawInfo *,Image *): PDrawingWand; external WandExport; +function DrawAllocateWand(const DrawInfo *,Image *): PDrawingWand; cdecl; external WandExport; } function NewDrawingWand: PDrawingWand; cdecl; external WandExport; diff --git a/packages/base/imagemagick/wand/magick_image.inc b/packages/base/imagemagick/wand/magick_image.inc index 159a67023c..3ff6b472fe 100644 --- a/packages/base/imagemagick/wand/magick_image.inc +++ b/packages/base/imagemagick/wand/magick_image.inc @@ -16,6 +16,15 @@ Magick Wand Image Methods. } +{ BugFix : + - MagickDrawImage(...const drawing_wand: PMagickWand... + + MagickDrawImage(...const drawing_wand: PDrawingWand... + - MagickAffineTransformImage(...const drawing_wand: PMagickWand... + + MagickAffineTransformImage(...const drawing_wand: PDrawingWand... + - MagickAnnotateImage(...const drawing_wand: PMagickWand... + + MagickAnnotateImage(...const drawing_wand: PDrawingWand... +} + function MagickGetImageChannelStatistics(wand: PMagickWand): PChannelStatistics; cdecl; external WandExport; function MagickGetImageAttribute(wand: PMagickWand): PChar; cdecl; external WandExport; @@ -48,9 +57,9 @@ function MagickAdaptiveThresholdImage(wand: PMagickWand; function MagickAddImage(wand: PMagickWand; const add_wand: PMagickWand): MagickBooleanType; cdecl; external WandExport; function MagickAddNoiseImage(wand: PMagickWand; const noise_type: NoiseType): MagickBooleanType; cdecl; external WandExport; function MagickAffineTransformImage(wand: PMagickWand; - const drawing_wand: PMagickWand): MagickBooleanType; cdecl; external WandExport; + const drawing_wand: PDrawingWand): MagickBooleanType; cdecl; external WandExport; function MagickAnnotateImage(wand: PMagickWand; - const drawing_wand: PMagickWand; const x, y, angle: double; + const drawing_wand: PDrawingWand; const x, y, angle: double; const text: PChar): MagickBooleanType; cdecl; external WandExport; function MagickAnimateImages(wand: PMagickWand; const server_name: PChar): MagickBooleanType; cdecl; external WandExport; @@ -77,7 +86,7 @@ function MagickColorizeImage(wand: PMagickWand; function MagickCommentImage(wand: PMagickWand; const comment: PChar): MagickBooleanType; cdecl; external WandExport; function MagickCompositeImage(wand: PMagickWand; - const composite_wand: MagickWand; const compose: CompositeOperator; + const composite_wand: PMagickWand; const compose: CompositeOperator; const x, y: Integer): MagickBooleanType; cdecl; external WandExport; function MagickConstituteImage(wand: PMagickWand; const columns, rows: Cardinal; const map: PChar; @@ -99,7 +108,7 @@ function MagickDisplayImage(wand: PMagickWand; function MagickDisplayImages(wand: PMagickWand; const server_name: PChar): MagickBooleanType; cdecl; external WandExport; function MagickDrawImage(wand: PMagickWand; - const drawing_wand: PMagickWand): MagickBooleanType; cdecl; external WandExport; + const drawing_wand: PDrawingWand): MagickBooleanType; cdecl; external WandExport; function MagickEdgeImage(wand: PMagickWand; const radius: double): MagickBooleanType; cdecl; external WandExport; function MagickEmbossImage(wand: PMagickWand; @@ -141,11 +150,11 @@ function MagickGetImageColormapColor(wand: PMagickWand; const index: Cardinal; color: PPixelWand): MagickBooleanType; cdecl; external WandExport; function MagickGetImageExtrema(wand: PMagickWand; min, max: Cardinal): MagickBooleanType; cdecl; external WandExport; -function MagickGetImageGreenPrimary(wand: PMagickWand; x, y: Pdouble): MagickBooleanType; external WandExport; +function MagickGetImageGreenPrimary(wand: PMagickWand; x, y: Pdouble): MagickBooleanType; cdecl; external WandExport; function MagickGetImageMatteColor(wand: PMagickWand; matte_color: PPixelWand): MagickBooleanType; cdecl; external WandExport; function MagickGetImagePage(wand: PMagickWand; - width, height: PCardinal; x, y: Integer): MagickBooleanType; cdecl; external WandExport; + width, height: PCardinal; x, y: PInteger): MagickBooleanType; cdecl; external WandExport; function MagickGetImagePixelColor(wand: PMagickWand; const x, y: Integer; color: PPixelWand): MagickBooleanType; cdecl; external WandExport; function MagickGetImagePixels(wand: PMagickWand; @@ -155,7 +164,7 @@ function MagickGetImageRedPrimary(wand: PMagickWand; x, y: Pdouble): MagickBoole function MagickGetImageResolution(wand: PMagickWand; x, y: Pdouble): MagickBooleanType; cdecl; external WandExport; function MagickGetImageWhitePoint(wand: PMagickWand; x, y: Pdouble): MagickBooleanType; cdecl; external WandExport; function MagickHasNextImage(wand: PMagickWand): MagickBooleanType; cdecl; external WandExport; -function MagickHasPreviousImage(wand: PMagickWand): MagickBooleanType; external WandExport; +function MagickHasPreviousImage(wand: PMagickWand): MagickBooleanType; cdecl; external WandExport; function MagickImplodeImage(wand: PMagickWand; const radius: double): MagickBooleanType; cdecl; external WandExport; function MagickLabelImage(wand: PMagickWand; const _label: PChar): MagickBooleanType; cdecl; external WandExport; function MagickLevelImage(wand: PMagickWand; @@ -183,19 +192,19 @@ function MagickNegateImageChannel(wand: PMagickWand): MagickBooleanType; externa Documentation not found } function MagickNewImage(wand: PMagickWand; - const columns, rows: Cardinal; const background: PPixelWand): MagickBooleanType; external WandExport; + const columns, rows: Cardinal; const background: PPixelWand): MagickBooleanType; cdecl; external WandExport; function MagickNextImage(wand: PMagickWand): MagickBooleanType; cdecl; external WandExport; function MagickNormalizeImage(wand: PMagickWand): MagickBooleanType; cdecl; external WandExport; function MagickOilPaintImage(wand: PMagickWand; const radius: double): MagickBooleanType; cdecl; external WandExport; function MagickPaintOpaqueImage(wand: PMagickWand; - const target, fill: PPixelWand; const fuzz: double): MagickBooleanType; external WandExport; + const target, fill: PPixelWand; const fuzz: double): MagickBooleanType; cdecl; external WandExport; function MagickPaintTransparentImage(wand: PMagickWand; - const target: PPixelWand; const opacity: Quantum; const fuzz: double): MagickBooleanType; external WandExport; + const target: PPixelWand; const opacity: Quantum; const fuzz: double): MagickBooleanType; cdecl; external WandExport; function MagickPingImage(wand: PMagickWand; const filename: PChar): MagickBooleanType; cdecl; external WandExport; { function MagickPosterizeImage(wand: PMagickWand; - const levels: Word; const dither: MagickBooleanType): MagickBooleanType; external WandExport; + const levels: Word; const dither: MagickBooleanType): MagickBooleanType; cdecl; external WandExport; ?? } function MagickPreviousImage(wand: PMagickWand): MagickBooleanType; cdecl; external WandExport; @@ -208,7 +217,7 @@ function MagickQuantizeImages(wand: PMagickWand; const number_colors: Cardinal; const colorspace: ColorspaceType; const treedepth: Cardinal; const dither: MagickBooleanType; const measure_error: MagickBooleanType): MagickBooleanType; cdecl; external WandExport; -function MagickRadialBlurImage(wand: PMagickWand; const angle: double): MagickBooleanType; external WandExport; +function MagickRadialBlurImage(wand: PMagickWand; const angle: double): MagickBooleanType; cdecl; external WandExport; function MagickRadialBlurImageChannel(wand: PMagickWand; const channel: ChannelType; const angle: double): MagickBooleanType; cdecl; external WandExport; function MagickRaiseImage(wand: PMagickWand; @@ -220,7 +229,7 @@ function MagickReadImageBlob(wand: PMagickWand; const blob: Pointer; const length: Integer): MagickBooleanType; cdecl; external WandExport; //function MagickReadImageFile(wand: PMagickWand; file_: file): MagickBooleanType; external WandExport; -function MagickReduceNoiseImage(wand: PMagickWand; const radius: double): MagickBooleanType; external WandExport; +function MagickReduceNoiseImage(wand: PMagickWand; const radius: double): MagickBooleanType; cdecl; external WandExport; function MagickRemoveImage(wand: PMagickWand): MagickBooleanType; cdecl; external WandExport; function MagickResampleImage(wand: PMagickWand; const x_resolution, y_resolution: double; diff --git a/packages/base/imagemagick/wand/magick_wand.pas b/packages/base/imagemagick/wand/magick_wand.pas index ef6c57f9fc..77f08997f3 100644 --- a/packages/base/imagemagick/wand/magick_wand.pas +++ b/packages/base/imagemagick/wand/magick_wand.pas @@ -16,15 +16,18 @@ ImageMagick MagickWand API. Converted from c by: Felipe Monteiro de Carvalho Dez/2005 + + Bug-fixed by Ángel Eduardo García Hernández + Thanks to Marc Geldon and RuBBeR } -{Version 0.2} +{Version 0.4} unit magick_wand; {$IFDEF FPC} {$mode objfpc} + {$PACKRECORDS C} {$ENDIF} -{$PACKRECORDS C} {$MINENUMSIZE 1} interface @@ -34,12 +37,12 @@ uses ImageMagick; type MagickWand = record id: Cardinal; - name: array[0..MaxTextExtent] of Char; + name: array[1..MaxTextExtent] of Char; exception: ExceptionInfo; image_info: PImageInfo; - quantize_info: QuantizeInfo; - images: Image; - iterator, debug: MagickBooleanType; + quantize_info: PQuantizeInfo; + images: PImage; + active, pend, debug: MagickBooleanType; signature: Cardinal; end;