Perl Magick调整颜色问题

时间:2014-01-15 14:06:39

标签: perl imagemagick

我正在编写一个脚本来调整gif图像的大小。我注意到我创建的图像具有较小的图像尺寸,但在磁盘上占用更多空间。我想我已经找到了问题的原因。在photoshop中检查时的原始图像在其颜色表中只有4种颜色(白色,灰色,灰色,黑色),而新图像在其颜色表中有256种颜色。我找不到从传入图像复制颜色表的方法,有没有办法控制它?这是我的剧本

use Image::Magick;
my $image = Image::Magick->new;
$image -> Read( 'test.gif' );
$image -> Resize(geometry=>"50%");
$image->Write( 'test-out.gif' );

任何建议都非常感谢。

2 个答案:

答案 0 :(得分:2)

您可以使用Sample()代替Resize()来保持相同数量的颜色

$image->Sample(geometry=>"50%");

答案 1 :(得分:0)

您可以使用-colors选项限制输出颜色的数量。包含+dither选项是个好主意,即使您确定输入和输出中的颜色数量相同。在直接的ImageMagick中,它看起来像这样:

convert test.gif +dither -colors 4 test-out.gif

我不知道perlMagick API的语法,但这应该让你非常接近。