如果您使用默认的非标准化 getColor 值,alpha 值将始终为 0 或 1。
如果您想在 24 位透明图像上使用真实的 0-1 全范围 alpha 通道,请使用标准化数据中的 alpha 值,即使您使用的是其余的非标准化数据。
要复制具有真实 alpha 透明度的 24 位 png,您需要这样做
<?php
$im=new Imagick( 'image.png' );
$iterator=$im->getPixelIterator();
foreach ($iterator as $row=>$pixels) {
foreach ( $pixels as $column => $pixel ){
$un_color=$pixel->getColor(); $nor_color=$pixel->getColor(true); $pixel->setColor('rgba('.$un_color['r'].','.$un_color['g'].','.$un_color['b'].','.$nor_color['a'].')');
}
}
?>
如果您使用非标准化颜色中的 'a'(alpha)值,则只会出现二进制透明度。