Mostrar imagen creada por imagejpeg
Frecuentes
Visto 1,462 equipos
2
Creo una imagen con una función externa.
La función que devuelve los datos sin procesar de la imagen:
function create_image()
{
...
ImageJPEG($myimg,NULL,85);
$imgdata = ob_get_contents();
ob_end_clean();
return $imgdata;
}
Mi script que debería mostrar cómo se ve la imagen:
$rawdata = create_image();
<img src="data:image/jpeg;base64,".base64_encode($rawdata)."" />
Ahora la imagen no está completa en el <img>
etiqueta. Si hago la calidad 50 (con ImageJPEG($myimg,NULL,50);
) la imagen se mostrará por completo. Si capturo los datos sin procesar y los escribo en el disco, la imagen estará completa en todas las calidades.
$rawdata = create_image();
$im = imagecreatefromstring($rawdata);
ImageJPEG($im,"./test.jpg",90);
Solo en el <img>
etiqueta no funciona.
¿Alguien tiene una idea de por qué no funciona?
1 Respuestas
0
Personalmente, nunca he usado esta técnica, generalmente uso una etiqueta de imagen simple con mi image.jpg.php (por ejemplo) como imagen. Para esto pongo un header("Content-type: image/jpeg")
en el archivo de imagen y simplemente repetir los datos.
Realmente nunca lo he probado con datos sin procesar, pero creo que esto sería preferible, especialmente para el mantenimiento (y la compatibilidad).
Respondido 04 Jul 12, 09:07
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas php image gd or haz tu propia pregunta.
¿Cómo está enviando la imagen a una "etiqueta img"? ¿Como URL de datos? - deceze
No, publico los datos sin procesar en la etiqueta img como se muestra arriba: user1121575
Bien que is una URL de datos. :) - deceze
ok, lo siento, no sabía eso. Pensé que te referías a una URL de una imagen :-) - user1121575
Tenga en cuenta que este es un método muy ineficiente para generar imágenes y no funcionará en versiones anteriores de Internet Explorer. Sería mucho más preferible crear la imagen en un recurso de imagen separado. - Pekka