Foros del Web » Programando para Internet » PHP »

manejo de imagenes en php

Estas en el tema de manejo de imagenes en php en el foro de PHP en Foros del Web. Hola a todos.. Tengo el siguiente codigo Código PHP: <?php $data  =  'iVBORw0KGgoAAAANSUhEUgAAABwAAAASCAMAAAB/2U7WAAAABl'         .  'BMVEUAAAD///+l2Z/dAAAASUlEQVR4XqWQUQoAIAxC2/0vXZDr'         .  'EX4IJTRkb7lobNUStXsB0jIXIAMSsQnWlsV+wULF4Avk9fLq2r'         .  '8a5HSE35Q3eO2XP1A1wQkZSgETvDtKdQAAAABJRU5ErkJggg==' ; echo  "ANTES!!!<br>" ...
  #1 (permalink)  
Antiguo 05/01/2006, 10:14
 
Fecha de Ingreso: octubre-2005
Mensajes: 69
Antigüedad: 18 años, 5 meses
Puntos: 0
Exclamación manejo de imagenes en php

Hola a todos..

Tengo el siguiente codigo

Código PHP:
<?php
$data 
'iVBORw0KGgoAAAANSUhEUgAAABwAAAASCAMAAAB/2U7WAAAABl'
       
'BMVEUAAAD///+l2Z/dAAAASUlEQVR4XqWQUQoAIAxC2/0vXZDr'
       
'EX4IJTRkb7lobNUStXsB0jIXIAMSsQnWlsV+wULF4Avk9fLq2r'
       
'8a5HSE35Q3eO2XP1A1wQkZSgETvDtKdQAAAABJRU5ErkJggg==';

echo 
"ANTES!!!<br>";

$im imagecreatefromstring($data);

echo 
"DESPUES<br>";

if (
$im !== false) {
   
header('Content-Type: image/png');
   
imagepng($im);
}
else {
   echo 
'An error occured.';
}
?>
Cuando trato de visualizar la pagina antes mensionada, solo aparece el "ANTES", pero el "DESPUES" no aparece... al parecer tengo problemas con la siguiente linea:

$im = imagecreatefromstring($data);

Estoy utilizando la version 4.3.10, lei por alli en la internet que esa funcion esta disponible para las versiones iguales o superior a 4.0.4.

No se cual puede ser el problema, les agradezco por su ayuda....!!!

Ciao!!
__________________
Ana Martins
  #2 (permalink)  
Antiguo 05/01/2006, 10:26
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
No puedes hacer lo que pretendes en el mismo script.

Debes separar los procesos que tengan salida hacia el cliente (navegador) de diferentes tipos.

Es decir .. por un lado generaras un gráfico y lo envias al cliente indicando en cabeceras HTTP que tipo de dato es el que envias .. (content-type) .. pero también pretendes enviar un "texto plano" a al vez ..

Para eso, .. crea tu script que genera la imagen sin ningún echo "algo" .. ni HTML .. ni espacios o saltos de línea antes de <? o despues de ?> ...llamalo con un nombre: genera_imagen.php .. a continucación llamalo desde -otro- script PHP o página HTML con un tag de imagen:

genera_grafico.php
Código PHP:
<?php 
$data 
'iVBORw0KGgoAAAANSUhEUgAAABwAAAASCAMAAAB/2U7WAAAABl' 
       
'BMVEUAAAD///+l2Z/dAAAASUlEQVR4XqWQUQoAIAxC2/0vXZDr' 
       
'EX4IJTRkb7lobNUStXsB0jIXIAMSsQnWlsV+wULF4Avk9fLq2r' 
       
'8a5HSE35Q3eO2XP1A1wQkZSgETvDtKdQAAAABJRU5ErkJggg=='

$im imagecreatefromstring($data); 

if (
$im !== false) { 
   
header('Content-Type: image/png'); 
   
imagepng($im); 

else { 
   echo 
'An error occured.'

?>
prueba.php
Código PHP:
<html>
<
head>
</
head>
<
body>
antes
<img src="genera_imagen.php">
despues
</body>
</
html
Los errores que puedas querer mostrar de la ejecución de ese script que genera el gráfico deberías de generalos antes de generar (según el flujo del código .. no en "posición absoluta" de esa función) tu "header()" y sólo los veras si ejecutas por -separado- (llamandolo por el URL directo) ese script (no desde un tag de imagen ..src: .. ahí sólo veras una enorme "X" ... en tu navegador)

Un saludo,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:53.