Hallihallo liebe Gemeinde,
ich habe versucht mit der ImageMagick-Bibliothek zu arbeiten. Soweit klappt das auch alles ganz gut, nur würde ich z.B. gerne erfahren, wie groß mein Bild eigentlich ist.
Im
API und in der
DLL gibt es eine Funktion mit folgendem C-Header:
Code:
WandExport MagickBooleanType MagickGetSize(const MagickWand *wand,
unsigned long *columns,unsigned long *rows)
{
RectangleInfo
geometry;
assert(wand != (const MagickWand *) NULL);
assert(wand->signature == WandSignature);
if (wand->debug != MagickFalse)
(void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
(void) ResetMagickMemory(&geometry,0,sizeof(geometry));
(void) ParseAbsoluteGeometry(wand->image_info->size,&geometry);
*columns=geometry.width;
*rows=geometry.height;
return(MagickTrue);
}
In meinem Delphiprogramm rufe ich die Funktion auf:
Delphi-Quellcode:
function MagickGetSize(wand: PMagickWand; cols, rows : PCardinal): MagickBooleanType; cdecl; external WandExport index 311;
var
ori_width, ori_height: Cardinal;
begin
// Wand ist vom Typ PMagickWand und ist initalisiert etc pp.. da kann der Fehler nicht liegen
if (MagickGetSize(wand, @ori_width, @ori_height) = MagickTrue) then begin
showmessage('blub'); // WIRD angezeigt
end;
end;
Könnte mir jemand verraten, ob ich den Header der Funktion falsch geportet habe? wie könnte man es anders machen? Ich wäre wirklich rieeßig dankbar wenn sich das mal jemand anschauen könnte.
Infos:
Download von ImageMagick (den
DLL's):
ImageMagick-6.3.7-1-Q16-windows-dll.exe
Download der Delphi-Header usw.:
PascalMagick (DelphiHeader für ImageMagick DLL's)
P.S.: Nein, es gibt KEINE Dokumentation für den Delphikram..^^ Sonst hätte ich sie schon gelesen.
MSVC2008 (C/C++ with QT), Delphi
RAD 2010, Flash CS5 (FDT/Adobe), Java EE (Eclipse), PHP5
Antwortsprachen: Deutsch, Englisch, Französisch, Japanisch