2014-01-15 74 views
1

我正在編寫一個腳本來調整gif圖像的大小。我注意到我創建的圖像的圖像尺寸較小,但佔用了更多的磁盤空間。我想我已經查明瞭問題的原因。在Photoshop中檢查時,原始圖像的顏色表中只有4種顏色(白色,灰色,灰色,黑色),而新圖像在其顏色表中有256種顏色。我無法找到從傳入圖像中複製顏色表的方法,有沒有辦法控制它?這是我的腳本Perl Magick調整顏色問題

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

任何意見非常讚賞。

回答

2

您可以使用樣本(),而不是調整大小(),以保持相同數量的顏色

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

這已經做到了。非常感謝你。 – user3198443

+0

如果此答案解決了您的問題,請點擊左側的刻度線接受此問題。見[問]你是否需要幫助。 – simbabque

0

您可以使用-colors選項來限制輸出顏色的數量。即使您確定在輸入和輸出中具有相同數量的顏色,最好也包含+dither選項。在直ImageMagick的,它應該是這樣的:

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

我不知道該perlMagick API的語法,但是這應該讓你非常接近。

+0

感謝您的答覆。我已經使用了上述完美工作的解決方案。 – user3198443