Comunidad de diseño web y desarrollo en internet online

Redimensionar una imagen y enviarla en un XML

Citar            
MensajeEscrito el 29 Ene 2009 09:58 pm
Hola amigos, hace un buen rato que no me daba la vuelta por aqui, espero que todo este bien, triago un problema que deseo comentarles
He hecho un XML que carga un Data Grid de Flash, todo esto funciona correctamente, en el Data Grid muestro una imagen pequeña y posteriormente se muestra la imagen grande, pero para crear la imagen pequeña deseo que se redimensione de la imagen grande para no estar generando miniaturas que solo el servidor tenga mas archivos.

El codigo es el siguiente:

Código :

   $query = mysql_query("SELECT * FROM $tb ORDER BY id") or die (mysql_error());
   while ($row= mysql_fetch_object($query)){
      $xml.= '<row id="'.$row->id.'" Imagen="'.$row->imagen.'" Thb="'.thb($row->imagen).'" Titulo="'.$row->titulo.'" Contenido="'.$row->contenido.'" />';
   }

Este Codigo me funciona de maravilla sin el : Thb="'.thb($row->imagen).'", la función que redimensiona es esta:

Código :

function thb($imagen){
   $imagen= $imagen;
   $anchura=305; 
   $hmax=150;
   $datos = getimagesize($imagen); 
   $img = @imagecreatefromjpeg($imagen); 
   $ratio = ($datos[0] / $anchura); 
   $altura = ($datos[1] / $ratio); 
   if($altura>$hmax){$anchura2=$hmax*$anchura/$altura;$altura=$hmax;$anchura=$anchura2;} 
   $thumb = imagecreatetruecolor($anchura,$altura); 
   imagecopyresampled($thumb, $img, 0, 0, 0, 0, $anchura, $altura, $datos[0], $datos[1]); 
   //header("Content-type: image/jpeg");
   return imagejpeg($thumb);
   imagedestroy($thumb);
}


si el pongo el header me manda solo la imagen y no el xml, si saco el header me marca garabatos (que debe de ser la imagen) mezclado con el xml.

El primer código como les comento funciona muy bien sin llamar a la función thb($imagen), Flash no carga nada al llamar a la funcion thb.

Les agradeceria mucho si me pueden ayudar con esto.

Nuevamente, gracias.

Por atomoclip

61 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 30 Ene 2009 01:51 am
claro bro es algo como ilogico porque el redimensionar la imagen necesitas mandar una cabezera de imagen y al mandar el xml mandas otra cabezera para que se entienda como xml la mejor opcion es montar la redimencion en un archivo aparte y pasarle los parametros por get para q te devuelva la imagen lista espero que me entiendas

Por talcual

686 de clabLevel



 

Colombia

firefox
Citar            
MensajeEscrito el 30 Ene 2009 02:54 pm
Muchas gracia por la respuesta, pero como podria hacer para que se muestre en el DataGrid de Flash estas imagenes, o de plano no se puede hacer esto.

Saludos y muchas gracias.

Por atomoclip

61 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 30 Ene 2009 04:04 pm
Se que es un poco offtopic, pero creo que redimensionar una imagen con PHP es más lento que simplemente cargar una miniatura y luego pasar a la imagen de tamaño original...

Por KB-27

Claber

301 de clabLevel



 

My very secret HQ

firefox
Citar            
MensajeEscrito el 30 Ene 2009 04:41 pm
Te agardesco mucho KB-27.

Saludos

Por atomoclip

61 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 31 Ene 2009 04:48 am
y porq no generars las thumbnails de las imagenes y cargas esas o puedes hacer esto

Código :

function thb($imagen){
   $imagen= $imagen;
   $anchura=305; 
   $hmax=150;
   $datos = getimagesize($imagen); 
   $img = @imagecreatefromjpeg($imagen); 
   $ratio = ($datos[0] / $anchura); 
   $altura = ($datos[1] / $ratio); 
   if($altura>$hmax){$anchura2=$hmax*$anchura/$altura;$altura=$hmax;$anchura=$anchura2;} 
   $thumb = imagecreatetruecolor($anchura,$altura); 
   imagecopyresampled($thumb, $img, 0, 0, 0, 0, $anchura, $altura, $datos[0], $datos[1]); 
   //header("Content-type: image/jpeg");
   return imagejpeg($thumb);
   imagedestroy($thumb);
}

en un archivo aparte y para llamar la imagen seria redimension.php?id=nombre.jpg y q te redimencione la imagen asi si creo q las puedes pasar a flash y si se pueden mandar por xml eso era lo q te decia q hicieras te di la pista bueno ya los sabes ;-)

Por talcual

686 de clabLevel



 

Colombia

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.