Pugofka Logo
Технологии 2 мин 2011-04-20

Черно-белые изображения на сайте

Черно-белые изображения на сайте

Многие из вас наверняка интересовались, как показать вашим пользователям на сайте фото в обработке, не прибегая к предварительной обработке средствами графических редакторов (например Photoshop).

Для решения данной задачи существовало несколько известных многим методов. В своей основе они достаточно сложные и ресурсоемкие.

В последнем проекте (сайт Альфастрахование.Бонус - alfastrahbonus.ru) возникла необходимость решения подобной задачи. Мы решили более эффективно подойти к решению данной задачи и использовать стандартную функцию imagefilter.

bool imagefilter ( resource $image , int $filtertype [, int $arg1 [, int $arg2 [, int $arg3 [, int $arg4 ]]]] )

Первый параметр думаю, что не требует дополнительных пояснений. На втором параметре остановлюсь подробнее, так как в нем заложены очень интересные вкусности.

Итак, эта функция знает и умеет следующие фильтры:

'IMG_FILTER_NEGATE': $filter = 0; //Reverses all colors of the image.
'IMG_FILTER_GRAYSCALE': $filter = 1; //Converts the image into grayscale.
'IMG_FILTER_BRIGHTNESS': $filter = 2; //Changes the brightness of the image. Use arg1 to set the level of brightness.
'IMG_FILTER_CONTRAST': $filter = 3; //Changes the contrast of the image. Use arg1 to set the level of contrast.
'IMG_FILTER_COLORIZE': $filter = 4; //Like IMG_FILTER_GRAYSCALE, except you can specify the color. Use arg1 , arg2 and arg3 in the form of red , blue , green and arg4 for the alpha channel. The range for each color is 0 to 255.
'IMG_FILTER_EDGEDETECT': $filter = 5; //Uses edge detection to highlight the edges in the image.
'IMG_FILTER_EMBOSS': $filter = 6; //Embosses the image.
'IMG_FILTER_GAUSSIAN_BLUR': $filter = 7; //Blurs the image using the Gaussian method.
'IMG_FILTER_SELECTIVE_BLUR': $filter = 8; //Blurs the image.
'IMG_FILTER_MEAN_REMOVAL': $filter = 9; //Uses mean removal to achieve a "sketchy" effect.
'IMG_FILTER_SMOOTH': $filter = 10; //Makes the image smoother. Use arg1 to set the level of smoothness.
'IMG_FILTER_PIXELATE': $filter = 11; //Applies pixelation effect to the image, use arg1 to set the block size and arg2 to set the pixelation effect mode.

Похожая задача у вас?

Статья описывает общий случай. Опишите свой — разберём на ваших вводных: что применимо, что нет и с чего дешевле начать.

Ещё по теме

Другие материалы из архива — о разработке, процессах и технологиях.