Рецепт №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);