Сохранить изображение из одного формата в другой с помощью php gd2 - PullRequest
1 голос
/ 08 мая 2011

У меня есть база данных со столбцом, заполненным данными двоичных изображений.После некоторого исследования я выяснил, как определить, в каком формате изображения находятся данные.Допустим, записи в моем столбце изображений представлены в формате gif , теперь я хочу сохранить его с php gd2 в формате jpeg .Пожалуйста, может кто-нибудь сказать мне, как я могу это сделать?

Ответы [ 3 ]

4 голосов
/ 08 мая 2011

Если вы хотите преобразовать только данные изображения в JPEG, тогда все, что вам нужно, это imagecreatefromstring и imagejpeg.В основном:

imagejpeg(imagecreatefromstring($gif_bindata), "temp.jpeg");
$jpeg_bindata = file_get_contents("temp.jpeg");

Это так просто, потому что imagecreatefromstring автоматически определяет тип файла (первые несколько байтов содержат достаточно магических байтов, чтобы сделать возможным их обнаружение).И, очевидно, вы можете вместо этого использовать реальное временное имя файла .

0 голосов
/ 08 мая 2011

Все, что вам нужно, это imagecreatefromstring () для чтения ваших данных и imagejpeg () для вывода в формате jpeg.

0 голосов
/ 08 мая 2011

Я думаю, вам нужно сделать следующее для каждого изображения:

  • Запишите данные BLOB-изображения в файл
  • Открыть изображение в GD с помощью imagecreatefromgif()
  • Записать образ обратно на диск с помощью imagejpeg()
  • Считать данные изображения из файла и записать их обратно в базу данных

В целом хранение данных изображений в базе данных, как это, является плохой практикой. Лучшее решение - хранить изображения на диске веб-сервера, но сохранять местоположение файла для изображений в базе данных. Если, например, вы сделали это, вам будет гораздо проще решить проблему, которую вы объясняете!

...