2014-01-29 40 views

回答

0

保存PNG文件後,似乎運行

identify -format '%[channels]' filename.png 

有效地返回要麼的sRGB/srgba。所以我會用它來保存到PNG,然後如果值爲srgb則轉換爲JPEG。

1

如果要檢測源圖像是否包含Alpha通道,則可以致電$imagick->getImageAlphaChannel()

如果要測試alpha通道是否實際上修改了圖像,即包含完全不透明的圖像,則可以撥打$image->getImageChannelStatistics();。其中的值可能僅在圖像具有Alpha通道時纔有效。具有影響圖像的alpha的圖像具有以下alpha值的值。

[8] => Array ( 
    [mean] => 46867.721934066 
    [minima] => 0 
    [maxima] => 65535 
    [standardDeviation] => 26491.889090216 
    [depth] => 16 
) 

不使用透明度的圖像具有值

[8] => Array ( 

    [mean] => 0 
    [minima] => 3.3999999521444E+38 
    [maxima] => -3.3999999521444E+38 
    [standardDeviation] => 0 
    [depth] => 1 
) 

這似乎僞造的。

所以只有一個alpha通道的圖像,並沒有1(或者說Qunatum值,也許2 ^^ 16)的alpha通道統計中的平均值和0的標準偏差,將需要使用Alpha通道保存。