Возвращаясь к статье
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 - видно что прозрачность и цветопередача теряется :-(
Скачать рабочий скрипт.
1 комментарий
Спасибо большое как раз делаю проект где это может пригодится!