Faça com que GD obtenha a imagem da corda binária
-
18-09-2019 - |
Pergunta
Eu tenho um banco de dados que armazena imagens em um campo MySQL Blob. Eu configurei um script que seleciona e exibe as imagens com base em um ID no URL, e também o fiz, se você anexar? Redimensione = 800x600, ele redimensionaria a imagem (neste caso, para 800x600).
O host que eu uso não tem o ImageMagick instalado e não me deixa fazer isso sozinho, então preciso usar a biblioteca GD do PHP para redimensionar a imagem.
Mas ainda não encontrei uma função como o Imagick's readImageBlob()
, então não posso editar a sequência binária que recebo do banco de dados sem primeiro criar um arquivo temporário, editá -lo, obter a sequência binária, enviando -a para o navegador e depois excluindo -a (que é waaaay muitos passos , especialmente porque isso receberá alguns milhares de acertos quando entrar em produção).
Então minha pergunta é: existe alguma maneira de replicar readImageBlob
Com o GD do PHP sem passar pela solução de arquivo temporário?
Solução
ImageCreateFromString () deve fazer o truque. Eu acho que o exemplo de função no manual é quase exatamente o que você precisa:
$im = imagecreatefromstring($data);
if ($im !== false) {
header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);
}
else {
echo 'An error occurred.';
}
Onde $data
é sua sequência de dados binários do banco de dados.