Попросите GD получить изображение из двоичной строки
-
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
это ваша строка двоичных данных из базы данных.