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

Рецепт №107. Из книги «128 рецептов 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); 
Рассказать друзьям:


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*