Функция PHP для конвертации изображения в чёрно-белое

Функция PHP для конвертации изображения в чёрно-белое.
В созданной функции используем встроенные:
ImageColorsTotal - встроенная функция, сколько всего цветов в изображении.
Imagecreatefromgif - создаёт новое изображение из файла или URL.


# col (количество цветов) 0 для серого, 1 для красного, 2 зелёного, 3 синего

function MakeColoursGrey($im,$col){
$total=ImageColorsTotal($im);
for($i=0;$i<$total;$i++){
$old=ImageColorsForIndex($im,$i);
$commongrey=(int)($old['red']+$old['green']+$old['blue'])/3;
if(!$col){
ImageColorSet($im,$i,$commongrey,$commongrey,$commongrey);
}elseif($col==1){
ImageColorSet($im,$i,$commongrey,0,0);
}elseif($col==2){
ImageColorSet($im,$i,0,$commongrey,0);
}elseif($col==3){
ImageColorSet($im,$i,0,0,$commongrey);
}
}
}

$img=imagecreatefromgif($src);

// выбираем изображение и цвет
MakeColoursGrey($img,$col);

// задаём для хедера нужный тип
Header("Content-Type: image/gif");

// возвращаем изображение
ImageGif($img);
?>


  13.04.24 / 03:20 | PHP |   197 | 2   0