PHP. Как создать bmp из бинарных данных?
Помогите разобраться с задачкой:
есть таблица MySQL. В ней поле BLOB с двоичными данными (картинками), и поле с обозначениями типов (image/jpeg, image/bmp)
Так вот, делаю простой скрипт, который выдирает эти картинки оттуда, и складывает в папку.
Проблема в том, что jpeg изображения создаются, а bmp нет! (вообще, точнее говоря, по задумке BMP из базы должны копироваться в папку, сохраняясь в JPG [использую imagejpeg()]).
Вот код:
mysql_connect("localhost","test","") or die("Нет соединения с сервером MySQL!");
mysql_select_db("test") or die("Нет соединения с базой данных!");
//
$res=mysql_query("SELECT * FROM `ImageContainer`");
while ($image = mysql_fetch_assoc($res))
{
$im = imagecreatefromstring($image['img_body']);
imagejpeg($im, "pic/$image[img_id].jpg");
}
?>
В случаях с BMP функция imagecreatefromstring() выдаёт следующую ошибку:
Типо данные не распознаны.
Так вот как мне реализовать задачу? Что исправить? И как вообще сделать BMP-картинку из MySql поля BLOB с двоичными данными на PHP?
Заранее, очень признателен!!!
imagecreatefromstring
These types will be automatically detected if your build of PHP supports them: JPEG, PNG, GIF, WBMP, and GD2.
BMP здесь нет.
Да и зачем вам BMP, занимате кучу места, плюс вы его всё равно конвертите в JPEG. Исползуйте PNG, если хотите безпотерьно хранить рисунки, BMP имеет смысл, наверное, только если есть проблемы с ресурсами (CPU). Хотя если вы всё время используете JPEG, то это скорее даст обратный эффект.
BMP здесь нет.
Ну так а какую функцию можно использовать вместо этой?
Мне главное, результат.
Как BMP из BLOB поля выдрать? Какую ф-цию использовать?
GD, на сколько я знаю, не работает с BMP (WBMP - это совсем другой формат).
Но может есть какой другой способ?
GD, на сколько я знаю, не работает с BMP (WBMP - это совсем другой формат).
Тем более странно, что вы стали использовать imagecreatefromstring.
Может и есть, читаем комментарии в манах PHP.