如果您使用默认的非规范化 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)值,则只会出现二进制透明度。