Domanda

Ho un database che memorizza le immagini in un campo BLOB MySQL. I ha installato uno script che seleziona e visualizza le immagini sulla base di un ID nell'URL, e ho anche fatto in modo, se si aggiunge? Ridimensionare = 800x600, sarebbe ridimensionare l'immagine (in questo caso, a 800x600).

L'host che uso non è installato Imagemagick e non mi permette di farlo io, quindi ho bisogno di usare libreria GD di PHP per ridimensionare l'immagine.
Ma non ho ancora trovato una funzione come readImageBlob() di Imagick, quindi non posso modificare la stringa binaria che ricevo dal database senza prima creare un file temporaneo, modificarlo, ottenendo la stringa binaria da esso, l'invio al browser , e quindi l'eliminazione di esso (che è troppo sopravvalutato troppi passaggi, soprattutto perché questo sarà sempre qualche migliaio di colpi quando va in produzione).

Quindi la mia domanda è: esiste un modo per replicare readImageBlob con GD di PHP senza passare attraverso la soluzione di file temporaneo?

È stato utile?

Soluzione

imagecreatefromstring () dovrebbe fare il trucco. Credo che l'esempio funzioni nel manuale è quasi esattamente quello che vi serve:

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

Dove $data è la stringa di dati binari dal database.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top