【问题标题】:How to cut the transparent part of an image with perl Image::Magick?如何使用 perl Image::Magick 剪切图像的透明部分?
【发布时间】:2012-12-17 20:56:56
【问题描述】:

我有一个PNG 图像,它是由convertPDF 文件生成的。这个 PNG 是字母大小,除了内容部分是透明的。

我使用Image::Magick perl 模块来处理图像(就像一个新手)。内容从 28x28px 开始,宽度是恒定的。高度是可变的。

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

【问题讨论】:

    标签: perl imagemagick imagemagick-convert


    【解决方案1】:

    您想使用 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");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-05
      • 2014-05-20
      • 1970-01-01
      • 2014-03-13
      • 2021-02-17
      • 1970-01-01
      • 2019-10-02
      • 2012-05-09
      相关资源
      最近更新 更多