Открытие, поворот и хранение изображений Tiff в столбце Blob базы данных MySQL
Вопрос
Моя проблема довольно проста:
- Получить изображение из базы данных MySQL (в настоящее время оно хранится в виде двоичных данных в столбце больших двоичных объектов).
- Поверните это изображение на 90 градусов (используя imagerotate PHP)
- Сохраните изображение обратно в базу данных с примененными изменениями вращения.
У меня возникли проблемы с поиском функций, которые позволят мне сохранить изображение в виде потока данных (а не в файловой системе), поскольку этим изображениям не разрешено касаться веб-сервера (следовательно, почему они находятся в базе данных).Любые советы приветствуются.
Спасибо
Решение
Вы конвертируете изображение в другой тип перед поворотом?Вы сказали, что используете TIFF, GD может читать только заголовки изображений в формате tiff, вам сначала нужно его преобразовать.Вероятно, с ИзображениеМагия
Скорее всего, вы захотите сохранить файлы во временный каталог:
- Запросить базу данных для файла
- Сохраните во временный каталог (при необходимости вы можете защитить файлы, установив разрешения)
- Поворот изображения
- Вставить обратно в базу данных
- Удалить временный файл
Другие советы
ВЫБЕРИТЕ данные из вашей БД.Передайте данные в imagecreatefromstring()
Теперь у вас есть ресурс изображения, который вы можете вызвать imagerotate.
Чтобы сохранить его обратно в БД, вам нужно будет вывести его с помощью imagepng()
/ imagejpeg()
или эквивалентную функцию для используемого типа изображения.Эти функции выводят данные в браузер или файл, поэтому вы можете использовать буферизацию вывода для захвата строки и сохранения ее обратно в БД.
ob_start();
imagepng($resource);
$img_data = ob_get_contents();
ob_end_clean();
$img_data
теперь можно сохранить в БД.
Это лишь приблизительный набросок, но я надеюсь, что я объяснил идею.