net*_*djw 4 perl imagemagick imagemagick-convert
我有一个PNG是通过产生什么样的形象convert从一个PDF文件中。除内容部分外,此PNG为字母大小且透明。
我使用Image::Magickperl模块来处理图像(像新手一样)。内容开始于28x28px,宽度恒定。高度是可变的。
如何剪切图像的透明部分并仅获取内容?或者如何找到Image :: Magick的最后一个不透明的行?
您要使用Trim()方法,然后重置page属性。修剪将裁剪出与角像素完全相同颜色的所有图像(在您的情况下为透明)。重置页面属性将确保您的内容在新的较小的图像画布上正确对齐。
这是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");
Run Code Online (Sandbox Code Playgroud)