Попросите GD получить изображение из двоичной строки

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

  •  18-09-2019
  •  | 
  •  

Вопрос

У меня есть база данных, которая хранит изображения в BLOB-поле MySQL.Я настроил скрипт, который выбирает и отображает изображения на основе идентификатора в URL, и я также сделал это так, что если вы добавите ?resize= 800x600, это изменит размер изображения (в данном случае до 800x600).

На хосте, который я использую, не установлен Imagemagick, и он не позволяет мне сделать это самому, поэтому мне нужно использовать библиотеку GD PHP для изменения размера изображения.
Но мне еще предстоит найти функцию, подобную Imagick's readImageBlob(), поэтому я не могу отредактировать двоичную строку, которую я получаю из базы данных, без предварительного создания временного файла, его редактирования, получения из него двоичной строки, отправки ее в браузер, а затем удаления (что, пожалуй, слишком много шагов, тем более что это получит несколько тысяч просмотров, когда будет запущено в производство).

Итак, мой вопрос в том, есть ли какой-нибудь способ повторить readImageBlob с PHP's GD, не проходя через временное файловое решение?

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

Решение

imagecreatefromstring() должно сработать.Я думаю, что пример функции в руководстве - это почти именно то, что вам нужно:

$im = imagecreatefromstring($data);
if ($im !== false) {
    header('Content-Type: image/png');
    imagepng($im);
    imagedestroy($im);
}
else {
    echo 'An error occurred.';
}

Где $data это ваша строка двоичных данных из базы данных.

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