Foros del Web » Programando para Internet » PHP »

Problemas con libreria grafica GD

Estas en el tema de Problemas con libreria grafica GD en el foro de PHP en Foros del Web. Bien. Mi problema es el siguiente. Mire algun tutorial que hay por la red para redimensionar las fotos. Para hacerlo uso la funcion imagecopyresampled() de ...
  #1 (permalink)  
Antiguo 30/11/2006, 04:30
 
Fecha de Ingreso: noviembre-2006
Mensajes: 5
Antigüedad: 18 años
Puntos: 0
Problemas con libreria grafica GD

Bien. Mi problema es el siguiente. Mire algun tutorial que hay por la red para redimensionar las fotos. Para hacerlo uso la funcion imagecopyresampled() de la librería GD y va perfectamente. Mi problema es cuando pongo el código en una función a la que paso el nombre de la imagen. La funcion se ocupa de redimensionar la foto y lo hace bien. El problema es cuando pongo esa funcion en un bucle. Solo genera la primera imagen y se keda en eso. El bucle lo hace bien y le paso bien la foto a la funcion pero solo me genera la primera imagen por pantalla :S.. Si alguien sabe en que me equivoco se lo agradecería muchisimo.
  #2 (permalink)  
Antiguo 30/11/2006, 05:59
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Ahora falta que indiques el código que usas (la explicación ya la tenemos de como funciona) .. así chequearemos todo lo que mencionas.

De todas formas .. no sé como generas tu código .. si dices "por pantalla" .. "asumo" que envias cabeceras HTTP (header(...)) y que generas tus imagenes "al vuelo" (no como archivos). (Te fijas las "suposiciones" que hay que estar haciendo, con el código todo esto se vé en el momento).

En ese caso . .tu tienes que tener un script que genera tu imagen con tu header() por médio .. Cuando digo "script" me refiero a un .php en forma aislada (aunque uses una función .. eso es lo de menos, a la función habrá que llamarla en ese script).

genera_imagen.php
Código PHP:
<?php
// tu función .. ya sea así o llamada en un include()
function genera_imagen(){
// balblabla
header(....)
etc ...
}

// llamas a tu función ...
genera_imagen($_GET['imagen']);
?>

En -otros- escripts/páginas HTML llamas a tu generación de la imagen bajo un tag de imagen HTML:

Código PHP:
<img src="genera_imagen.php?imagen=<? echo $referencia ?>">
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 30/11/2006, 09:51
 
Fecha de Ingreso: noviembre-2006
Mensajes: 5
Antigüedad: 18 años
Puntos: 0
Hola Cluster..
La verdad es que todavía soy bastante novato en eso. Lo que hago es llamar la funcion generaImagen() desde otro fichero pero no lo hago bajo un tag de imagen html. Me lio un poco y me está costando salir del paso la verdad..jeje.
aqui te dejo la función:
Código PHP:
function generaFotos($nombreFoto)
    {
        
$anchura 200;
        
$altura 200;
        
//$num='1.jpg';
        
$nombre 'fotos/'.$nombreFoto;

        
$datos getimagesize($nombre); 
        if(
$datos[2]==1){$img = @imagecreatefromgif($nombre);} 
        if(
$datos[2]==2){$img = @imagecreatefromjpeg($nombre);} 
        if(
$datos[2]==3){$img = @imagecreatefrompng($nombre);} 

        
//imagen desde el archivo jpg        
        
$thumb imagecreatetruecolor($anchura$altura);
        
        
        
$margen_x 10;
        
$margen_y 10;
        
        
$a $anchura-2*$margen_x
        
$h $altura-2*$margen_y;
        
        
$src_a imagesx($thumb);//src_w= src_a; 
        
$src_h imagesy($thumb);
        
        
//¿desplegamos la imagen en la dimensión original
        
if(($a $src_a) && ($h $src_h)) {
            
$dst_a $src_a;//dst_w=dst_a
            
$dst_h $src_h;
        } else
        
//¿o escalamos la imagen de acuerdo a la dimensión horizontal
        
if(($a/$h) < ($src_a/$src_h)) {
            
$dst_a $a;
            
$dst_h $a*$src_h/$src_a;
        } else
        
//¿o la escalamos de acuerdo a la dimensión vertical
        
{
            
$dst_a $h*$src_a/$src_h;
            
$dst_h $h;
        }
        
        
imagecopyresampled($thumb$img, ($anchura-$dst_a)/2, ($altura-$dst_h)/2,
         
00,$dst_a$dst_h,$datos[0], $datos[1]);
        
        
//colocamos el texto sobre la imagen
        //imagestring($image, 0, $margen_x, ($altura-$margen_y), $nombre, $anchura);
        
        //encabezado correspondiente para los datos de salida
        
if($datos[2]==1){header("Content-type: image/gif"); $contenido=imagegif($thumb);} 
        if(
$datos[2]==2){header("Content-type: image/jpeg");$contenido=imagejpeg($thumb);} 
        if(
$datos[2]==3){header("Content-type: image/png");$contenido=imagepng($thumb); }
        
        
//generamos la imagen
        
imagejpeg($thumb);
        
        
//liberamos la memoria
        
imagedestroy($thumb);
    } 
suponiendo que kiero llamar esta funcion desde una pagina con codigo html como podría hacer?.
Muchas gracias!
  #4 (permalink)  
Antiguo 30/11/2006, 10:23
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Pues ya te indiqué como .. lee detenidamente mi mensaje anterior y haz tus pruebas.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 30/11/2006, 10:46
 
Fecha de Ingreso: noviembre-2006
Mensajes: 5
Antigüedad: 18 años
Puntos: 0
Bua! Perdona!!No me había fijao. Muchas gracias por tu ayuda ya me funciona
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:32.