2008-09-16

как обработать BMP изображение используя PHP

Как известно библиотека GD не поддерживает возможность прочитать файлы формата BMP а пользователи (особенно малограмотные пользователи) часто так и норовят закачать на сайт фото или картинку в формате BMP. Как быть если закачать нельзя но очень хочется? Оказывается есть способ.

Здесь работающая демка а здесь сходник

Собственно всю грязную работу выполняет класс написанный Джеймсом Хайнрихом (James Heinrich) для своего проекта getID3(). Что интересно, в последних версиях проекта класс уже не умеет преобразовывать BMP в GD а только читает метаинформацию. На старую версию класса наткнулся совершенно случайно - она есть в phpThumb уже в полном варианте. Большое спасибо Джемс :)

 

комментарии:

 
http://id.nblast.org/ | 2008-09-23
такая, право, лажа этот GD. Юзаю вместо него ImageMagick
max | 2008-09-23
Ну почему лажа? Просто GD выполнен как расширение PHP а ImageMagik скорее утилита командной строки... К тому же не всегда хостер-провайдер имеет ее установленной. По правде говоря не имел возможности поюзать, нужно будет попробовать :)))
http://id.nblast.org/ | 2008-09-23
Ну почему лажа?
Хотя бы потому, что убивает прозрачность в гифах. Ну и вообще проект, кажется, заброшен, имеет много багов и его кое-как поддерживает команда PHP.
Просто GD выполнен как расширение PHP а ImageMagik скорее утилита командной строки... К тому же не всегда хостер-провайдер имеет ее установленной.
Есть соответствующее расширение для пхп, жаль, его почти никогда не ставят. Там очень удобный API, работает в стопицот раз быстрее GD и поддерживает более 9000 форматов картинок.
max | 2008-09-24
Прозрачность реализована, только довольно своеобразно, возможно это связано с ограничениями самого альфаканала формата GIF а вообще делал я вещи с прозрачностью и в GIF и PNG не проблема.

Для того чтобы каждый раз не представляться можно войти как зарегистрированный пользователь.

Имя*

разрешены только теги br, font, span, p, strong, u, p, blockquote, a, div, img - остальные будут безжалостно удаляться