我有一个从文件PNG
生成的图像。这个PNG是字母大小和透明的,除了内容部分。convert
PDF
我使用Image::Magick
perl 模块来操作图像(就像一个新手)。内容从 28x28px 开始,宽度不变。高度是可变的。
如何剪切图像的透明部分并仅获取内容?或者我怎样才能找到 Image::Magick 的最后一条不透明行?
我有一个从文件PNG
生成的图像。这个PNG是字母大小和透明的,除了内容部分。convert
PDF
我使用Image::Magick
perl 模块来操作图像(就像一个新手)。内容从 28x28px 开始,宽度不变。高度是可变的。
如何剪切图像的透明部分并仅获取内容?或者我怎样才能找到 Image::Magick 的最后一条不透明行?
您想使用 Trim() 方法,然后重置页面属性。修剪将裁剪掉与角像素颜色完全相同的所有图像(在您的情况下是透明的)。重置页面属性将确保您的内容在新的更小的图像画布上正确对齐。
以下是 ImageMagick 文档中有关 Trim() 的更多信息:http ://www.imagemagick.org/script/command-line-options.php#trim
它在 PerlMagick 中的有效图像处理方法列表中(尽管这里的文档有点稀疏):http ://www.imagemagick.org/script/perl-magick.php#manipulate
像下面这样的东西应该可以为您解决问题:
use strict;
use Image::Magick;
my $in = $ARGV[0];
my $out = $ARGV[1];
my $transparent_png = Image::Magick->new;
$transparent_png->Read("$in");
$transparent_png->Trim();
$transparent_png->Set(page=>'0x0+0+0');
$transparent_png->Write("$out");