Pregunta

Tengo una base de datos que almacena las imágenes en un campo BLOB de MySQL. I fijó un guión que selecciona y muestra las imágenes en función de una identificación en la URL, y también lo hice por lo que si usted adiciona? = Cambiar el tamaño de 800x600, sería cambiar el tamaño de la imagen (en este caso, a 800x600).

El host que utilice no tenga instalado Imagemagick y no me deja hacerlo yo mismo, así que tengo que usar librería GD de PHP para cambiar el tamaño de la imagen.
Pero todavía tengo que encontrar una función como readImageBlob() de Imagick, así que no puedo editar la cadena binaria que recibo de la base de datos sin crear primero un archivo temporal, editarlo, consiguiendo la cadena binaria de él, enviarlo al navegador , y luego eliminarlo (que es muuuuy muchos pasos, sobre todo porque este va a obtener unos pocos miles de éxitos cuando se entra en producción).

Así que mi pregunta es, ¿hay alguna manera de replicar readImageBlob con GD de PHP sin tener que pasar a través de la solución de archivo temporal?

¿Fue útil?

Solución

imagecreatefromstring () debe hacer el truco. Creo que el ejemplo de la función en el manual es casi exactamente lo que necesita:

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

Cuando $data es la cadena de datos binarios de la base de datos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top