当我使用Perl :: Magick的Gratent Extent时,为什么我的图像不在中心?

时间:2010-01-15 19:41:15

标签: perl imagemagick

我正在尝试使用ImageMagick来扩展图像:

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 );

当图像延伸到正确的尺寸时,它不在中间。我是否正确使用了这个?

更新

我也尝试过使用笨重的版本:

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

但仍然没有好处。我使用的是6.5.8-10版本。

第二次更新:

在PerlMagick的更新日志中找到了这个:

2009-10-18  6.5.7-0 Cristy  <quetzlzacatenango@image...>
  * Interpret gravity properly for ExtentImage().

2 个答案:

答案 0 :(得分: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!

答案 1 :(得分:0)

看起来像一个bug,因为Perl之外的转换工作。