PHP: Как сделать зеленую область (фон) на изображении прозрачной? - PullRequest
1 голос
/ 24 марта 2012

Я новичок в Stackoverflow.

Мне бы очень хотелось выяснить, возможно ли сделать прозрачный определенный цвет изображения с помощью сценария PHP.И если это так, как это сделать.

Допустим, это изображение, цвет фона которого (зеленый) должен быть полностью прозрачным: Французская хот-дог с зеленым фоном

enter image description here

Я понятия не имею, как будет выглядеть такой скрипт или даже с чего начать.Я полагаю, что вам, вероятно, придется установить нежелательный цвет RGB и затем «отсканировать» каждый пиксель изображения, чтобы определить, какие пиксели должны быть прозрачными.Но кроме этого я не в курсе.

Серьезно надеюсь, что кто-то здесь сможет мне помочь в этом.

Ответы [ 2 ]

3 голосов
/ 24 марта 2012

в первую очередь изображение должно быть png причина JPEG не поддерживает прозрачность, тогда код выглядит так:

<?php
   $image = 'test.png';
   $im = imagecreatefrompng($image); 
   //if you exactly know the RGB color indexes
   //$rgb = imagecolorexact($im, 0, 0, 0);
   //or keep the rgb color by position so at top 0 left 0
   $rgb = imagecolorat($im, 0, 0);
   imagecolortransparent($im, $rgb);
   header("Content-type: image/png");
   //display the image directly
   imagepng($im);
   // or save it
   // imagepng($im, 'test-to-transparent.png');
   imagedestroy($im); 
?>
0 голосов
/ 24 марта 2012

imagecolortransparent () поможет вам:

...
$yourColor = imagecolorallocate($im, 0, 0, 0);
imagecolortransparent($im, $yourColor);
...
...