2012-11-11 83 views

回答

3

Qunatize內 '-quantize透明' 是由PHP的Imagick擴展支持;但是,很少有文檔被創作。幸運的是,「Color Quantization and Transparency」的例子很簡單。

convert alpha_gradient.png -quantize transparent \ 
    +dither -colors 15 alpha_colors_15qt.png 

從這個例子中,我們可以通過確定Imagick::quantizeImage

  • 顏色數量所需要的5個參數= 15(-colors 15
  • 色彩空間=透明
  • 樹深度= 0(未定義
  • 抖動=假(+抖動
  • Messure錯誤=假
<?php 

$wand = new Imagick("alpha_gradient.png"); 
$wand->quantizeImage(15,Imagick::COLORSPACE_TRANSPARENT,0,false,false); 
$wand->writeImage("alpha_colors_15qt.png"); 
+1

謝謝你的迴應。不幸的是,如果我使用'Imagick :: COLORSPACE_TRANSPARENT',則所有透明度/ alpha都會轉換爲黑色。由於某種原因,IMagick不會忽略alpha /透明度,除非使用'Imagick :: COLORSPACE_RGB'指定了上述'256'顏色的調色板。太奇怪了。 'quantizeImage(257,Imagick :: COLORSPACE_RGB,0,false,false)'=保存透明度。 'quantizeImage(256,Imagick :: COLORSPACE_RGB,0,false,false)'=透明度轉換爲黑色。 – Terry

+2

嗯。我無法重現/遇到此問題(在OS X 10.8.2上使用ImageMagick 6.8.0-4)。這聽起來像PHP的Imagick擴展工作正常,但強調的ImageMagick安裝可能是問題的原因。使用'convert'方法重複相同的命令是否會生成相同的圖像? – emcconville

+1

'exec('convert $ file -quantize rgb + dither -colors 257 $ file_new');'將保持透明度。小於'257'或指定'transparent'而不是'rgb'將會將所有透明度轉換爲黑色。我認爲這可能與我的ImageMagick安裝版本6.6.4有關。我要安裝一個更新的版本並再次測試...... Ps。再次感謝你的幫助! – Terry