Schrift
[thread]11059[/thread]

PerlMagick: GIF und Crop

Leser: 1


<< >> 4 Einträge, 1 Seite
Froschpopo
 2007-12-23 09:44
#104109 #104109
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
Ich habe irgendwie ein Problem mit PerlMagick (ImageMagick).
Und zwar: Wenn ich die Größe eines GIF ändern möchte, dann setzt er dies nicht wie gewünscht um.
Bei JPEG's funktioniert es hingegen einwandfrei.
Ich vermute deshalb das Problem beim GIF-Format.

Mein Crop sieht so aus:
Code (perl): (dl )
$image->Crop(geometry => "100x100+0+$offset")
topeg
 2007-12-23 10:43
#104110 #104110
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Allso bei mir funktioniert es.

Machst du eine Fehlerabfrage?
Code (perl): (dl )
1
2
$err=$image->Crop(geometry => "100x100+0+$offset");
print $err if "$err";


Mach das auch beim laden, Damit du sicher bist, das das Bild auch geladen ist.

Hast du mehrer Bilder oder eine Animation geladen?
Dann musst du jedes Bild einzeln ansprechen:
Code (perl): (dl )
$$image[$_]->Crop(geometry => "100x100+0+$offset") for(0..$#{$image});


Allso das funktioniert bei mir:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/usr/bin/perl
use strict;
use warnings;
use Image::Magick;

my $file='/home/topeg/bilder/gifs/test4.gif';
my $x;
my $offset=0;

my $img=Image::Magick->new;

$x=$img->Read($file);
warn "$x\n" if "$x";

for my $nr (0..$#{$img})
{
$x=$$img[$nr]->Crop(geometry => "100x100+0+$offset");
warn "$x\n" if "$x";
}

$x=$img->Display();
warn "$x\n" if "$x";
Froschpopo
 2007-12-23 21:13
#104124 #104124
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
Ich verwende kein Read, sondern BlobToImage() da die Daten aus einer Datenbank stammen und nicht als File vorliegen.
Das als Nebenbemerkung.

Ich bin mir nicht so ganz sicher, ob wir beide dasselbe meinen.
Also bei mir ist es n#mlich so, dass Proportionen nicht stimmen, auch nicht, bei einem Nicht-animierten GIF.
Er ignoriert quasi einfach das komplette Crop, ob animiert oder nicht.
Einzig die Höhe wird korrekt umgesetzt.
topeg
 2007-12-23 22:18
#104133 #104133
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Bei mir funktioniert es auch mit BlobToImage:
Code (perl): (dl )
1
2
3
4
#$x=$img->Read($file);
my $data=do{local ( @ARGV,$/ ) = $file; <>};
$x=$img->BlobToImage($data);
warn "$x\n" if "$x";


Was machst du eigentlich genau?
Könnte es sein, dass du falsche Daten bearbeitest?
<< >> 4 Einträge, 1 Seite



View all threads created 2007-12-23 09:44.