Przeglądaj źródła

+ New version by Felipe Monteiro de Carvalho

git-svn-id: trunk@4876 -
michael 19 lat temu
rodzic
commit
dfbef3a7cf

+ 5 - 2
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

+ 12 - 7
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;

+ 1 - 0
packages/base/imagemagick/magick/quantize.inc

@@ -30,6 +30,7 @@ type
 
     signature: Cardinal;
   end;
+	PQuantizeInfo = ^QuantizeInfo;
 
 {extern MagickExport MagickBooleanType
   GetImageQuantizeError(Image *),

+ 3 - 3
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;
 

+ 22 - 13
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;

+ 9 - 6
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;