Просмотров: 2173

Модификация - image2GrayColor.

Возвращаясь к статье PHP - получение черно-белых изображений немного модифицировал функцию image2GrayColor. Теперь она работает чуть быстрее и надежнее.
Быстрее - в случае обработки JPG изображений:

$img_jpg = imagecreatefromJPEG( $img_path );
if( $img_jpg AND imagefilter( $img_jpg, IMG_FILTER_GRAYSCALE )) {
@unlink( $output_path );
imagejpeg( $img_jpg, $output_path );
return showImages( $img_path, $output_path );
}
else{
return 'Error: JPG Support.';
}
imagedestroy( $img_jpg );

Надежнее - появилась вспомогательная функция imageType. Дело в том что функция exif_imagetype поддерживается не на всех серверах, поэтому в отрицательном случае срабатывает медленная, но более распространенная - getimagesize.

function imageType( $img_path ){
if( function_exists( 'exif_imagetype' ) ){
return exif_imagetype( $img_path );
}
else{
$arr_from_img = getimagesize ( $img_path );
return $arr_from_img['2'];
}
}

Ко всему прочему image2GrayColor теперь при необходимости возвращает ошибки или изображение(я) с помощью еще одной дополнительной функции - showImages.

Примеры работы функции image2GrayColor:

JPG


В примере с GIF я намеренно оставил третий промежуточный вариант полученный в результате эксперимента с IMG_FILTER_GRAYSCALE - видно что прозрачность и цветопередача теряется :-(

Скачать рабочий скрипт.

]]>twitter.com Google Buzz google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru]]>



Эта запись опубликована: Воскресенье, 4 января 2009 в рубрике PHP.

1 комментарий

Следите за комментариями по RSS
  1. Спасибо большое как раз делаю проект где это может пригодится!

Оставьте комментарий!

Не регистрировать/аноним

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Зарегистрировать/комментатор

Для регистрации укажите свой действующий email и пароль. Связка email-пароль позволяет вам комментировать и редактировать данные в вашем персональном аккаунте, такие как адрес сайта, ник и т.п. (Письмо с активацией придет в ящик, указанный при регистрации)

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

(обязательно)