perl - 当我使用 Perl::Magick's Extent with Gravity 时,为什么我的图像不在中心?

标签 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().

最佳答案

#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!

关于perl - 当我使用 Perl::Magick's Extent with Gravity 时,为什么我的图像不在中心?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2074288/

相关文章:

perl - 如何在 Perl 中禁用代码块,就像在 C 中使用 #ifdef 一样?

perl - Data::Dumper 返回带有斜线的哈希值

linux - 使用 SED/Perl 删除包含数字的字符串部分

php - ImageMagick 创建多个文件

PHP:使用 ImageMagick 将 alpha channel 转换为白色背景

linux - 如何从命令行批量将图像大小调整为最大 2MB?

perl - 如何使用模板工具包从数组中获取元素?

image-processing - 如何使用网格分割图像并保留透明边界框

r - 从 R 中的一系列传单 map 创建一个 gif

php - 如何将传入的 XML 文件与现有 mysql 数据同步