Question

J'ai une base de données qui stocke les images dans un champ BLOB MySQL. Je configurer un script qui sélectionne et affiche les images basées sur un ID dans l'URL, et j'ai aussi fait en sorte, si vous ajoutez? Redimensionner = 800x600, il redimensionner l'image (dans ce cas, à 800x600).

L'hôte que je n'utilise pas l'Imagemagick installé et ne me laisse pas le faire moi-même, donc je dois utiliser la bibliothèque GD de PHP pour redimensionner l'image.
Mais je n'ai pas encore trouver une fonction comme la readImageBlob() de Imagick, je ne peux pas modifier la chaîne binaire que je reçois de la base de données sans créer un fichier temporaire, éditer, obtenir la chaîne binaire de lui, l'envoyer au navigateur , puis de le supprimer (ce qui est waaaay trop d'étapes, d'autant plus que ce sera obtenir quelques milliers de résultats de sa mise en production).

Alors ma question est, est-il possible de reproduire readImageBlob avec GD de PHP sans passer par la solution de fichier temporaire?

Était-ce utile?

La solution

imagecreatefromstring () devrait faire l'affaire. Je pense que l'exemple de fonction dans le manuel est presque exactement ce dont vous avez besoin:

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

$data est votre chaîne de données binaires à partir de la base de données.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top