2014-01-29 36 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通道保存。