В этой статье я хочу показать, как в php можно из цветной картинки сделать черно-белую с помощью библиотеки GD.
Ни чего сложного в создании черно-белого изображения нет — создаем пустое изображение с размером, равному исходному(цветному) и задаем серую палитру. Потом накладываем цветную картинку на холст, с серой палитрой. И сохраняем результат.
Весь код я оформил в виде функции. Ниже приведен код с подробными комментариями.
<?php
function makeGrayPic($filename, $resultName){
// получаем размеры исходного изображения
$imgSize = getimagesize($filename);
$width = $imgSize[0];
$height = $imgSize[1];
// создаем новое изображение
$img = imageCreate($width,$height);
// задаем серую палитру для нового изображения
for ($color = 0; $color <= 255; $color++) {
imageColorAllocate($img, $color, $color, $color);
}
// создаем изображение из исходного
$img2 = imageCreateFromJpeg($filename);
// объединяем исходное изображение и серое
imageCopyMerge($img,$img2,0,0,0,0, $width, $height, 100);
// сохраняем изображение
imagejpeg($img, $resultName);
// очищаем память
imagedestroy($img);
}
// пример использования
makeGrayPic('test.jpg', 'testGray.jpg');
?>
