如何使用perl image::Magick剪切图像的透明部分?

如何使用perl image::Magick剪切图像的透明部分?,perl,imagemagick,imagemagick-convert,Perl,Imagemagick,Imagemagick Convert,我有一张由convert从PDF文件生成的PNG图像。除内容部分外,此PNG为字母大小且透明 我使用Image::Magickperl模块来操作图像(就像新手一样)。内容从28x28px开始,宽度不变。高度是可变的 如何剪切图像的透明部分并仅获取内容?或者如何使用Image::Magick找到最后一行不透明的行?您想使用Trim()方法,然后重置页面属性。修剪将裁剪出与角点像素颜色完全相同的所有图像(在您的情况下为透明)。重置页面属性将确保内容在新的更小的图像画布上正确对齐 以下是ImageMa

我有一张由
convert
PDF
文件生成的
PNG
图像。除内容部分外,此PNG为字母大小且透明

我使用
Image::Magick
perl模块来操作图像(就像新手一样)。内容从28x28px开始,宽度不变。高度是可变的

如何剪切图像的透明部分并仅获取内容?或者如何使用Image::Magick找到最后一行不透明的行?

您想使用Trim()方法,然后重置页面属性。修剪将裁剪出与角点像素颜色完全相同的所有图像(在您的情况下为透明)。重置页面属性将确保内容在新的更小的图像画布上正确对齐

以下是ImageMagick文档中有关Trim()的更多信息:

这里是PerlMagick中有效的图像处理方法列表(尽管这里的文档比较少):

类似于以下内容的内容可以为您提供帮助:

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