Открытие, поворот и хранение изображений Tiff в столбце Blob базы данных MySQL

StackOverflow https://stackoverflow.com/questions/1032994

  •  06-07-2019
  •  | 
  •  

Вопрос

Моя проблема довольно проста:

  1. Получить изображение из базы данных MySQL (в настоящее время оно хранится в виде двоичных данных в столбце больших двоичных объектов).
  2. Поверните это изображение на 90 градусов (используя imagerotate PHP)
  3. Сохраните изображение обратно в базу данных с примененными изменениями вращения.

У меня возникли проблемы с поиском функций, которые позволят мне сохранить изображение в виде потока данных (а не в файловой системе), поскольку этим изображениям не разрешено касаться веб-сервера (следовательно, почему они находятся в базе данных).Любые советы приветствуются.

Спасибо

Это было полезно?

Решение

Вы конвертируете изображение в другой тип перед поворотом?Вы сказали, что используете TIFF, GD может читать только заголовки изображений в формате tiff, вам сначала нужно его преобразовать.Вероятно, с ИзображениеМагия

Скорее всего, вы захотите сохранить файлы во временный каталог:

  • Запросить базу данных для файла
  • Сохраните во временный каталог (при необходимости вы можете защитить файлы, установив разрешения)
  • Поворот изображения
  • Вставить обратно в базу данных
  • Удалить временный файл

Другие советы

ВЫБЕРИТЕ данные из вашей БД.Передайте данные в imagecreatefromstring()

Теперь у вас есть ресурс изображения, который вы можете вызвать imagerotate.

Чтобы сохранить его обратно в БД, вам нужно будет вывести его с помощью imagepng() / imagejpeg() или эквивалентную функцию для используемого типа изображения.Эти функции выводят данные в браузер или файл, поэтому вы можете использовать буферизацию вывода для захвата строки и сохранения ее обратно в БД.

ob_start();
imagepng($resource);
$img_data = ob_get_contents();
ob_end_clean();

$img_data теперь можно сохранить в БД.

Это лишь приблизительный набросок, но я надеюсь, что я объяснил идею.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top