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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top