Foros del Web » Programando para Internet » PHP »

Problema con las miniaturas en GD2

Estas en el tema de Problema con las miniaturas en GD2 en el foro de PHP en Foros del Web. Hola: Uso este programilla para crear las miniaturas de las imagenes usando GD2. El problema que tengo es que me crea las miniaturas pero en ...
  #1 (permalink)  
Antiguo 31/03/2004, 07:49
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 20 años, 10 meses
Puntos: 3
Problema con las miniaturas en GD2

Hola:

Uso este programilla para crear las miniaturas de las imagenes usando GD2. El problema que tengo es que me crea las miniaturas pero en blanco y negro, no a color.

<?php

function redimensionar_jpeg($img_original, $img_nueva, $img_nueva_anchura, $img_nueva_altura,$img_nueva_calidad) {

// crear imagen desde original
$img = ImageCreateFromJPEG($img_original);

// crear imagen nueva
$thumb = ImageCreate($img_nueva_anchura,$img_nueva_altura);

// redimensionar imagen original copiandola en la imagen
ImageCopyResized($thumb,$img,0,0,0,0,$img_nueva_an chura,$img_nueva_altura,ImageSX($img),ImageSY($img ));

// guardar la imagen redimensionada donde indicia $img_nueva
ImageJPEG($thumb,$img_nueva,$img_nueva_calidad);

}

redimensionar_jpeg('maletero.jpg','mini_maletero.j pg',200,200,100);

?>

¿Como puedo solucionarlo?
Muchas Gracias
  #2 (permalink)  
Antiguo 31/03/2004, 07:58
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
mm las funciones que estás usando son para GD versión 1.x ...así que (independiente del problema puntual que ahora tienes) vas a generar imagenes en 256 colores máximo independiente de la profundidad de color de la imagen origen (aunque sea True color ..)

Revisa esta FAQ como ejemplo (incorpora las funciones para GD 2.x donde se generan imagenes hasta "True Color")
http://www.forosdelweb.com/showthrea...620#post282620

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 31/03/2004, 09:18
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 20 años, 10 meses
Puntos: 3
OK.
He estado revisando las FAQS pero no he encontrado nada.
¿Que le falla al codigo que estoy usando?

Gracias
  #4 (permalink)  
Antiguo 31/03/2004, 09:25
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Y lo probastes? (el código de las FAQ's)

Te lo comento por qué hace lo que pretendes en su base .. se supone que está probado y así saldras de dudas si es tu lógica o bien puede ser otros problemas (tal vez el formato de las imagenes o cualquier otra cosa).

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 31/03/2004, 09:30
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 20 años, 10 meses
Puntos: 3
Muchas Gracias por vuestras aportaciones.
Ya me he dado cuenta cual era mi pequeño error.

el codigo para que la imagen se pase a color es:

<?php

function redimensionar_jpeg($img_original, $img_nueva, $img_nueva_anchura, $img_nueva_altura,$img_nueva_calidad) {

// crear imagen desde original
$img = ImageCreateFromJPEG($img_original);

// crear imagen nueva
$thumb = ImageCreateTrueColor($img_nueva_anchura,$img_nueva _altura);

// redimensionar imagen original copiandola en la imagen
ImageCopyResized($thumb,$img,0,0,0,0,$img_nueva_an chura,$img_nueva_altura,ImageSX($img),ImageSY($img ));

// guardar la imagen redimensionada donde indicia $img_nueva
ImageJPEG($thumb,$img_nueva,$img_nueva_calidad);

}

redimensionar_jpeg('maletero.jpg','mini_maletero.j pg',200,200,100);

?>

Muchasr Gracias

Ahora tengo otra pequeña cuestion:
¿Como puedo hacer para redimensionar la imagen, no para darla un tamaño predefinido?
Es decir yo le doy una altura y anchura maxima y que se ajusten las proporciones.

Muchas Gracias
  #6 (permalink)  
Antiguo 31/03/2004, 11:27
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Pues .. usando algo de mátemáticas ..

Fijate que el tamaño de la imagen destino se forma en X,Y coordenadas y de ancho y algo definido .. si tu tomas el tamaño de la imagen divides el alto por el ancho .. obtienes la "relación" que guarda tu imagen .. multiplica el factor (alto o ancho) que quieras modificar por esta relación obtenida ..

Ejemplo:


Código PHP:
    // Tamaño del Thumbanil (de la imagen a generar ..) (ancho máximo ...
    
$picsize 123;
    
    
// Se obtienen los datos del ancho y alto de la imagen.
    
$new_w imagesx($src_img);
    
$new_h imagesy($src_img);

    
// Se calcula la relación alto/ancho
    
$aspect_ratio $new_h $new_w;
    
    
// Se ajusta al nuevo tamaño
    
$new_w $picsize;
    
$new_h abs($new_w $aspect_ratio);

    
// Se crea la mascara de la imagen nueva    
    
$dst_img ImageCreateTrueColor($new_w,$new_h); 
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 20:48.