В этой статье я хочу показать, как в 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'); ?>