Foros del Web » Programando para Internet » PHP »

Problema al usar ImageCreateFromJPEG

Estas en el tema de Problema al usar ImageCreateFromJPEG en el foro de PHP en Foros del Web. Como estoy muy urgido y producto de la poca experiencia con imágenes es que recurro a uds. Tengo el siguiente script: <? $imagen="documentos/descargas/fotos/0572.jpg"; $calidad=80; $reduccion=5; ...
  #1 (permalink)  
Antiguo 22/08/2006, 16:02
Avatar de ciberpato  
Fecha de Ingreso: agosto-2004
Mensajes: 142
Antigüedad: 13 años, 3 meses
Puntos: 1
Problema al usar ImageCreateFromJPEG

Como estoy muy urgido y producto de la poca experiencia con imágenes es que recurro a uds. Tengo el siguiente script:

<?
$imagen="documentos/descargas/fotos/0572.jpg";
$calidad=80;
$reduccion=5;
$src_img=ImageCreateFromJPEG($imagen);
$ancho_o=imagesx($src_img);
$alto_o=imagesy($src_img);
//Aqui puedes modificar los tamaños de las miniaturas
echo $ancho_o."<br>";
echo $alto_o."<br>";
if($ancho_o<=$alto_o)
{
$ancho=80;
$alto=100;
}
else
{
$ancho=100;
$alto=80;
}
$dst_img=imagecreatetruecolor($ancho,$alto);
imagecopyresampled($dst_img,$src_img,0,0,0,0,$anch o,$alto,$ancho_o,$alto_o);
ImageJPEG($dst_img,'',$calidad);
ImageDestroy($src_img);
Imagedestroy($dst_img);
?>

Tengo habilitadas las extesiones en el php.ini para usar GD. El problema que tengo al ejecutar el ejemplo anterior es que me arroja una serie de garabatos o código ascii o que se yo. Esperaba una imagen reducida de una foto en jpg. Alguien me puede explicar porque pasa esto..

De antemano agradezco su colaboración.
  #2 (permalink)  
Antiguo 22/08/2006, 16:08
Avatar de DeeR  
Fecha de Ingreso: diciembre-2003
Ubicación: Santiago
Mensajes: 520
Antigüedad: 14 años
Puntos: 17
Uno, te falto escribir la cabezera del contenido del script.
Es decir una imagen, ya que tu browser esta interpretando el contenido como texto por eso te lo muestra asi.

Header("Content-type: image/jpeg");
Agrega eso al comienzo del script.


En el siguiente enlace
www .washeebo .com/sargento/03_php/03_php.php
(Todavia no puedo postear URL, debo tener min 15 msg :P)

Contiene varios tutoriales desde 0 sobre el manejo de la libreria GD con PHP

Saludos.
  #3 (permalink)  
Antiguo 22/08/2006, 16:18
Avatar de ciberpato  
Fecha de Ingreso: agosto-2004
Mensajes: 142
Antigüedad: 13 años, 3 meses
Puntos: 1
Gracias DeeR, hice lo que indicaste ahora solo aparece un cuadrado con una cruz, sin imagen.....???, será que no la encuentra, no creo ya que el php habría arrojado un error.
  #4 (permalink)  
Antiguo 22/08/2006, 17:07
Avatar de ciberpato  
Fecha de Ingreso: agosto-2004
Mensajes: 142
Antigüedad: 13 años, 3 meses
Puntos: 1
Ya descubrí el problema hay que eliminar los echos, ya que no se puede escribir nada despues del HEADER....Hasta la próxima
  #5 (permalink)  
Antiguo 22/08/2006, 17:08
Avatar de DeeR  
Fecha de Ingreso: diciembre-2003
Ubicación: Santiago
Mensajes: 520
Antigüedad: 14 años
Puntos: 17
Haber primero.

echo $ancho_o."<br>";
echo $alto_o."<br>";


Recuerda que estamos creando una imagen con PHP, no podemos imprimir un texto mientras creamos una imagen, es decir si ves el codigo saldra ese texto y elcodigo de la imagen, y esto seria una imagen no validad.Elimina los echo.

Y segundo creo que el patch
$imagen="documentos/descargas/fotos/0572.jpg";
No esta correcto. Debe ser patch full por decir

// En Linux
$ubi="/home/el4letra/public_html/script/firmas/img/maps/imagen.png";
$mapa = imagecreatefrompng($ubi);

// En Windows
$ubi="c:/programas/internet/easyphp1-8/www/script/firmas/img/maps/imagen.png";
$mapa = imagecreatefrompng($ubi);


Lo otro revisa el link que puse, comienza desde 0 hasta unos tutoriales bien completos de GD :)
  #6 (permalink)  
Antiguo 22/08/2006, 18:14
Avatar de ciberpato  
Fecha de Ingreso: agosto-2004
Mensajes: 142
Antigüedad: 13 años, 3 meses
Puntos: 1
DeeR, esta todo okey el archivo de prueba funciona bien lo carga perfecto y con su correspondiente alto y ancho osea 100x80 o 80x100 segun sea el caso. El problema que tengo ahora es como incluir este código sin que me joda el HEADER en el script siguiente que funciona con imágenes 800x600 sin problemas:

<?php
include("../../cgi-bin/proxy.php");
include("../../cgi-bin/strSql.php");
$objProxy=new proxy();
$count=0;
getFotoLogoDoc(2);
$resultset=$objProxy->consultar($sql);
?>

<table width="500" border="0" cellspacing="2" cellpadding="0" align="center">
<?php while($row=mssql_fetch_array($resultset)) { ?>
<?php if($count==0) { ?>
<tr>
<?php } ?>
<td width="100" height="60"><a href="fotos/<?php echo $row[0]; ?>" target="_blank" ><img src="<?php echo $row[0]; ?>" border="0" width="100" height="80"></a></td>
<?php if($count==5) { ?>
</tr>
<?php } ?>
<?php if($count==5) { $count=0; }else{ $count++; }
} ?>
</table>

La idea es poner en el img src la imagen destino o reducida con el

ImageJPEG($dst_img,'',$calidad);

Será posible?...
  #7 (permalink)  
Antiguo 22/08/2006, 18:23
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Iniciado por ciberpato Ver Mensaje
DeeR, esta todo okey el archivo de prueba funciona bien lo carga perfecto y con su correspondiente alto y ancho osea 100x80 o 80x100 segun sea el caso. El problema que tengo ahora es como incluir este código sin que me joda el HEADER en el script siguiente que funciona con imágenes 800x600 sin problemas:

<?php
include("../../cgi-bin/proxy.php");
include("../../cgi-bin/strSql.php");
$objProxy=new proxy();
$count=0;
getFotoLogoDoc(2);
$resultset=$objProxy->consultar($sql);
?>

<table width="500" border="0" cellspacing="2" cellpadding="0" align="center">
<?php while($row=mssql_fetch_array($resultset)) { ?>
<?php if($count==0) { ?>
<tr>
<?php } ?>
<td width="100" height="60"><a href="fotos/<?php echo $row[0]; ?>" target="_blank" ><img src="<?php echo $row[0]; ?>" border="0" width="100" height="80"></a></td>
<?php if($count==5) { ?>
</tr>
<?php } ?>
<?php if($count==5) { $count=0; }else{ $count++; }
} ?>
</table>

La idea es poner en el img src la imagen destino o reducida con el

ImageJPEG($dst_img,'',$calidad);

Será posible?...
Si, .. es posible .. pero tu script PHP de proceso que genera tu imagen con GD ha de ser llamado en forma individual bajo el tag de imagen HTML:

Es decir, crea un script de nombre tipo genera_imagen.php con el código que presentastes en tu primer mensaje (y con el "header()" correspondiente).

y ... lo llamas desde tus otras pàginas o scripts PHP por un tag de imagen HTML comùn:

Código PHP:
<img src="genera_imagen.php"
Claro .. si necesitas en tu script "genera_imagen.php" tomar algunos parámetros para realizar el trabajo .. pasalos en el mismo "url" que apuntas a tu script de proceso y tomalos en este por GET o el mètodo que los envies:

Código PHP:
<img src="genera_imagen.php?imagen=<? echo $row[0?>">
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 23/08/2006, 10:39
Avatar de ciberpato  
Fecha de Ingreso: agosto-2004
Mensajes: 142
Antigüedad: 13 años, 3 meses
Puntos: 1
Cluster, hice lo indicado y la galería de foto funciona a la perfección.....gracias por tu colaboración Hasta la próxima
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 22:42.