Отправить заявку

PHP - из цветного в черно-белое

Понадобилось реализовать, обработчик фото, загружаемых на сервер, который бы создавал миниатюру в ч/б.Конечно, можно использовать для этого и JS и CSS фильтры, но после изучения технического задания был выбран именно серверный обработчик на php.

Плюс мизерный, но он есть. На сервере около 100 000 изображений. Мы взяли 50 и пересохранили их в 50 цветных и 50 черно-белых миниатюр. Разница в объеме была незначительной, но она была 960КБ. Т.е. на сервере используется меньше места, загружаемая страница весит тоже меньше т.к. для отображения фото нужно лишь написать просто html тег img. Без фильтров и JS обработок, что дает прирост прорисовки страницы. Также фото на сайте будут выглядеть одинаково на всех устройствах и во всех браузерах (а так бы пришлось писать маски под каждый браузер).

Пример кода php:

<?php
$path = $_SERVER['DOCUMENT_ROOT'].'/photo/color/1.jpg';
$img = imagecreatefrompng($path);
if (imagefilter($img, IMG_FILTER_GRAYSCALE)) {
    imagepng($img,'grayscale.png' );
}
imagedestroy($img);
?>

Данный способ прекрасно работает с большими изображениями и даже с панорамами. Если Вы сделали у себя на сайте виртуальные туры - то некоторые можно выделить таким образом, обесцветив изображение. Качественное создание виртуальных туров на сегодняшний день стало доступно всем. Например из цветного панорамного фото:

можно сделать ч/б и оно отлично будет смотреться:

Другие публикации