2009-08-18 2 views
2

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

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

Итак, мой вопрос в том, есть ли способ реплицировать readImageBlob с помощью PHP GD без прохождения временного файлового решения?

ответ

5

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

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

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

Смежные вопросы