Заменить изображение зеленого фона на php изображение GD

Здравствуйте, мне нужно заменить зеленый фон изображения на прозрачный
может кто-нибудь помочь мне здесь, пожалуйста

это мой код

/* ---------------CHANGE THESE------------------- */
$colorToReplace = RGBtoHSL(0, 255, 0);
$hueAbsoluteError = 40;
$replacementColor = RGBtoHSL(255, 255, 255);
/* ---------------------------------------------- */

$filename = $path.$file;
$im = imagecreatefrompng($filename);
$out = imagecreatetruecolor(imagesx($im), imagesy($im));
$transColor = imagecolorallocatealpha($out, 0, 0, 0, 0);
imagefill($out, 0, 0, $transColor);

for ($x = 0; $x < imagesx($im); $x++) {
for ($y = 0; $y < imagesy($im); $y++) {
$pixel = imagecolorat($im, $x, $y);

$red = ($pixel >> 16) & 0xFF;
$green = ($pixel >> 8) & 0xFF;
$blue = $pixel & 0xFF;
$alpha = ($pixel & 0x7F000000) >> 24;

$colorHSL = RGBtoHSL($red, $green, $blue);

if ((($colorHSL[0]  >= $colorToReplace[0] - $hueAbsoluteError) && ($colorToReplace[0] + $hueAbsoluteError) >= $colorHSL[0])){
$color = HSLtoRGB($replacementColor[0], $replacementColor[1], $colorHSL[2]);
$red = $color[0];
$green= $color[1];
$blue = $color[2];
}

if ($alpha == 127) {
imagesetpixel($out, $x, $y, $transColor);
}
else {
imagesetpixel($out, $x, $y, imagecolorallocatealpha($out, $red, $green, $blue, 0));
}
}
}

imagecolortransparent($out, $transColor);
imagesavealpha($out, TRUE);
header('Content-type: image/png');
imagepng($out);

я хочу удалить зеленый фон прозрачным из этого изображение перед
но я получил такой результат изображение после

как это исправить

благодарю вас

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]