Вы можете просто вызвать $imagick->getImageAlphaChannel()
, если хотите определить, есть ли в исходном изображении альфа-канал.
Если вы хотите проверить, действительно ли альфа-канал изменяет изображение, т. е. содержит ли он что-то кроме полностью непрозрачного, вы можете вызвать $image->getImageChannelStatistics();
. Значения в этом могут быть действительными только в том случае, если изображение имеет альфа-канал.
например Изображение с альфа-каналом, влияющим на изображение, имеет следующие значения альфа-канала.
[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
)
которые кажутся ложными.
Таким образом, только изображение с альфа-каналом, которое не имеет одновременно 1 (или, скорее, значения Qunatum, то есть, вероятно, 2 ^^ 16) для среднего значения в статистике альфа-канала и 0 для стандартного отклонения, потребует сохранения с альфа-канал.
person
Danack
schedule
30.01.2014