2010-01-15 3 views
4

Je suis en train d'utiliser ImageMagick pour mesure une image un peu:Pourquoi mon image n'est-elle pas au centre lorsque j'utilise l'extension Perl :: Magick avec Gravity?

my $image = Image::Magick->new; 
open(IMAGE, $filename); 
$image->Read(file => \*IMAGE); 
close(IMAGE); 

$image->Extent(gravity => 'Center', width => 150, height => 150,); 

$image->Write($outfile); 

tandis que l'image est extented à la taille correcte, il est pas au milieu. Est-ce que je l'utilise correctement?

Mise à jour:

J'ai aussi essayé d'utiliser la version difficile à manier:

$image->Set(Gravity => 'Center'); 

mais toujours pas bon. J'utilise la version 6.5.8-10.

2ème mise à jour:

Trouvé ceci dans le changelog de PerlMagick:

2009-10-18 6.5.7-0 Cristy <[email protected]> 
    * Interpret gravity properly for ExtentImage(). 
+0

Votre exemple de code fonctionne pour moi avec le paquet Image :: Magick de Fedora, qui semble être une ancienne version (6.5.4.7). Je n'ai pas réussi à construire quelque chose de plus nouveau à comparer. – Porculus

Répondre

0

On dirait un bug, comme convertir en dehors de Perl fonctionne.

1
#Ok, you need to extent your image upto 100x100 and fill new area by transparent background: 

($nx, $ny) = $image->Get('base-columns','base-rows'); 
$nnx = 50-$nx/2; 
$nny = 50-$ny/2; 

$image->Extent(geometry=>"100x100-$nnx-$nny", background=>"graya(0%, 0)"); 

#woohoo! 
Questions connexes