Создание черно-белой картинки из цветной через PHP

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

// исходная картинка
$image = "test.jpg"; 
 
// получаем размеры исходного изображения
$imgSize = getimagesize($image);
$width = $imgSize[0];
$height = $imgSize[1];
// создаем новое изображение
$img = imagecreate($width,$height);
// задаем серую палитру для нового изображения
for ($color = 0; $color <= 255; $color++) {
    imagecolorallocate($img, $color, $color, $color);
}
// создаем изображение из исходного
$source = imagecreatefromjpeg($image);
// объединяем исходное изображение и серое
imagecopymerge(
$img, $source, 0, 0, 0, 0, 
$width, $height, 100
);
 
// заголовок для браузера
header('Content-type: image/png'); 
// выводим картинку в браузере
imagepng($img); 
// чистим память
imagedestroy($img); 
imagedestroy($source); 

Источник: Из книги «128 рецептов php»

02:25
900
RSS
Нет комментариев. Ваш будет первым!
Загрузка...