У меня есть набор изображений. В этих изображениях существует зеленый альфа-цвет. Мне нужно заменить этот прозрачный цвет на другой цвет (я хочу заменить на белый альфа-цвет).
Это мой код:
$img = imagecreatefrompng($path . $file);
$white_color_transparent = imagecolorallocatealpha($img, 255, 255, 255, 127);
for ($y = 0; $y < imagesy($img); $y++) {
for ($x = 0; $x < imagesx($img); $x++) {
$rgb = imagecolorat($img, $x, $y);
$pixel_color = imagecolorsforindex($img, $rgb);
if ($pixel_color['alpha'] != 0 && $pixel_color['alpha'] != 127){
imagesetpixel($img, $x, $y, $white_color_transparent);
}
}
}
imagealphablending($img, false);
imagesavealpha($img, true);
imagepng($img, $path . $file);
И мой результирующий цвет совпадает с исходным изображением id, когда я добавляю перед
imagesetpixel($img, $x, $y, $white_color_transparent);
эту строку:
imagesetpixel($img, $x, $y, $white_color);
я получаю только белый цвет без прозрачности