4

ファイルからPNG生成された画像があります。このPNGはレターサイズでコンテンツ部分以外は透過しています。convertPDF

私はImage::Magickperl モジュールを使用して画像を操作します (初心者のように)。コンテンツは 28x28px から始まり、幅は一定です。高さは可変です。

画像の透明部分を切り取り、コンテンツのみを取得するにはどうすればよいですか? または、Image::Magick で最後の透明でない行を見つけるにはどうすればよいですか?

4

1 に答える 1

5

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");
于 2012-12-17T22:42:35.447 に答える