Foros del Web » Programando para Internet » PHP »

Estoy haciendo un listado con thundbails pero tengo dos problemas!

Estas en el tema de Estoy haciendo un listado con thundbails pero tengo dos problemas! en el foro de PHP en Foros del Web. Hola que tal, bueno lo que quiero hacer es un listado como un resultado de busqueda pero con imagenes y algun que otro texto porque ...
  #1 (permalink)  
Antiguo 05/09/2007, 15:06
Avatar de @padawan@  
Fecha de Ingreso: julio-2005
Mensajes: 393
Antigüedad: 18 años, 9 meses
Puntos: 6
Estoy haciendo un listado con thundbails pero tengo dos problemas!

Hola que tal, bueno lo que quiero hacer es un listado como un resultado de busqueda pero con imagenes y algun que otro texto porque estoy haciendo un banco de imagenes, quiero lograr algo parecido a esto:

Fotoscopio - Imagenes Latinoamericanas

bueno lo que yo tengo hecho hasta ahora, es re basico , pero queria probar solamente el tema de la paginacion y al momento de mostrar la imagen:

http://www.padawan.bblogg.com.ar/ban...osMejorado.php

Les comento como lo hice mas o menos, todas las imagenes estan cargadas en el servidor, los datos los trae de una base de datos en mysql y en el campo donde iria la foto va el nombre de la imagen y para mostrarla la levanta de disco.

Ahora bien , las fotos que se cargan se cargan en tamaños mucho mayores, pero mediante la libreria GD de php manipulo las imagenes y las achico proporcionalmente a unos limites que defino yo, pero el problema de achicar las imagenes como thundbails es que pierde mucha calidad la imagen, y deberia quedar como en el sitio anterior que tomo de ejemplo, en donde la calidad de las imagenes chicas es excelente, todas las imagenes que cargue son jpg de buena calidad y de mayor tamaño a 640x480 con lo cual al achicarlas proporcionalmente deberian verse bien , pero no es asi, voy a postear el codigo que hice para crear los thundbails:

Código PHP:
<?php 

$ruta 
"fotos/".$_GET['ruta'];
$nuevo_ancho $_GET['ancho'];
$nuevo_alto $_GET['alto'];

$fuente = @imagecreatefromjpeg($ruta);
$imagen imagecreatetruecolor($ancho,$alto); //Con esta linea mejoro la calidad de la imagen
$imgAncho imagesx ($fuente);
$imgAlto =imagesy($fuente);



//Determino las nuevas medidas en función de los límites
if($imgAncho $nuevo_ancho OR $imgAlto $nuevo_alto)
{
    if((
$imgAlto $nuevo_alto) > ($imgAncho $nuevo_ancho))
    {
        
$nuevo_ancho round($imgAncho $nuevo_alto $imgAlto,0) ;       
    }
    else
    {
        
$nuevo_alto round($imgAlto $nuevo_ancho $imgAncho,0);   
    }
}
else 
//si la imagen es más pequeña que los límites la dejo igual.
{
    
$nuevo_alto $imgAlto;
    
$nuevo_ancho $imgAncho;
}



imagecopyresized($imagen,$fuente,0,0,0,0,$nuevo_ancho,$nuevo_alto,$imgAncho,$imgAlto);

header("Content-type: image/jpeg");
imagejpeg($imagen);
imagedestroy($imagen);

?>
En el listado de imagenes cuando quiero mostrar la imagen hago lo siquiente:

Código HTML:
<img src="VerImagen.php?ruta=<? echo   fotos_datos['Fotografia']?>&alto=100&ancho=100" /> 
Bueno con eso funciona perfecto, pero el problema que tengo es de calidad de la imagen.

Bueno el segundo e importante problema que tengo es que cuando la imagen se achica proporcionalmente y quedan margenes a los costados dependiendo si la imagen tiene un sentido horizontal o vertical aparecen margenes de color negro rellenando el cuadrado en donde esta inserta la imagen, esto queda muy feo y no se cual es la opcion o parametro en la libreria GD para hacerlo transparente.
ademas de querer centrar las imagenes tambien como esta hecho en la pagina que tomo de ejemplo.

Espero me puedan ayudar con esto, ya que hasta aqui llego mi sabiduria je.
  #2 (permalink)  
Antiguo 05/09/2007, 17:27
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Estoy haciendo un listado con thundbails pero tengo dos problemas!

En primera te recomendaria cambiar imagecopyresized por imagecopyresampled, te da mucha mas calidad.

Para tu segunda duda deberias de usar imagecolortransparent para poder definir un area como transparente. Ten en cuenta que solo imagenes GIF y PNG soportan transparencia.

Saludos.
  #3 (permalink)  
Antiguo 06/09/2007, 08:35
Avatar de @padawan@  
Fecha de Ingreso: julio-2005
Mensajes: 393
Antigüedad: 18 años, 9 meses
Puntos: 6
Re: Estoy haciendo un listado con thundbails pero tengo dos problemas!

ok, entonces reemplazo imagecopyresized por imagecopyresampled asi de facil?? llevan los mismos parametros??

y con respecto a la funcion imagecolortransparent como se usa ??

gracias por responder.

Cita:
Iniciado por GatorV Ver Mensaje
En primera te recomendaria cambiar imagecopyresized por imagecopyresampled, te da mucha mas calidad.

Para tu segunda duda deberias de usar imagecolortransparent para poder definir un area como transparente. Ten en cuenta que solo imagenes GIF y PNG soportan transparencia.

Saludos.
  #4 (permalink)  
Antiguo 06/09/2007, 08:50
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Estoy haciendo un listado con thundbails pero tengo dos problemas!

Te recomiendo veas el Manual de PHP para que veas que parametros se usan.

Saludos!
  #5 (permalink)  
Antiguo 06/09/2007, 12:07
Avatar de @padawan@  
Fecha de Ingreso: julio-2005
Mensajes: 393
Antigüedad: 18 años, 9 meses
Puntos: 6
Re: Estoy haciendo un listado con thundbails pero tengo dos problemas!

Casi logro mi cometido, pero no fue suficiente, utilize la funcion imagecolortransparent , busque documentacion en la web y logre usarla, pero no se si tengo que usarlo de otro modo, o que, porque segun pude averiguar esta funcion vuelve transparente un color determinado , en este caso el color que deseo volver tranparente es el negro y para que la imagen sea transparente la transforme en formato png pero lo malo es que hay fotos e imagenes que pueden tener el color negro, y cuando esto sucede tambien se vuelve transparente, y no quiero que ocurra esto, existira otro modo?? como haran los demas site para hacer esto que estoy necesitando??

Aqui va el codigo actual:

Código PHP:
<?php 

$ruta 
"fotos/".$_GET['ruta'];
$nuevo_ancho $_GET['ancho'];
$nuevo_alto $_GET['alto'];

$fuente = @imagecreatefromjpeg($ruta);
$imagen imagecreatetruecolor($ancho,$alto); //Con esta linea mejoro la calidad de la imagen
$imgAncho imagesx ($fuente);
$imgAlto =imagesy($fuente);


//Determino las nuevas medidas en función de los límites
if($imgAncho $nuevo_ancho OR $imgAlto $nuevo_alto)
{
    if((
$imgAlto $nuevo_alto) > ($imgAncho $nuevo_ancho))
    {
        
$nuevo_ancho round($imgAncho $nuevo_alto $imgAlto,0) ;       
    }
    else
    {
        
$nuevo_alto round($imgAlto $nuevo_ancho $imgAncho,0);   
    }
}
else 
//si la imagen es más pequeña que los límites la dejo igual.
{
    
$nuevo_alto $imgAlto;
    
$nuevo_ancho $imgAncho;
}


//Tratar de hacer transparente la imagen negra que sobra en las fotos
$negro imagecolorallocate($imagen,0,0,0);
$transparente imagecolortransparent ($imagen$negro);
imagefill($imagen,0,0,$transparente);
//

imagecopyresampled($imagen,$fuente,0,0,0,0,$nuevo_ancho,$nuevo_alto,$imgAncho,$imgAlto);


//header("Content-type: image/jpeg");
//imagejpeg($imagen,'',100);
header("Content-type: image/png");
imagepng($imagen);
imagedestroy($imagen);

?>
les dejo el resultado:
http://66.7.198.76/~euphoria/BancoIm...osMejorado.php

Si se fijan en la tercera imagen y en la ultima por contener color negro se transparenta la imagen misma, esto es un error.
  #6 (permalink)  
Antiguo 07/09/2007, 13:48
Avatar de @padawan@  
Fecha de Ingreso: julio-2005
Mensajes: 393
Antigüedad: 18 años, 9 meses
Puntos: 6
Re: Estoy haciendo un listado con thundbails pero tengo dos problemas!

Por favor pido ayuda de vuelta, miren logre esto:

http://66.7.198.76/~euphoria/BancoIm...osMejorado.php

En mi explorador veo que he eliminado el recuadro negro pero otro usuario de forosdelweb me dijo que lo sigue viendo es mas me paso un printscreen y efectiuvamente se veia el recuadro negro alrededor de la imagen , la verdad no se que solucion darle a este tema.
Cualquier ayuda lo agradesco, si quieren ver el codigo arriba ya lo habia posteado.

************************
EDIT: Comprobe que el problema esta con el internet explorer , yo uso firefox y se ve perfecto, aunque en el IE se sigue viendo el recuadro negro, como puedo hacer para eliminarlo??
  #7 (permalink)  
Antiguo 13/12/2007, 16:23
Avatar de @padawan@  
Fecha de Ingreso: julio-2005
Mensajes: 393
Antigüedad: 18 años, 9 meses
Puntos: 6
Re: Estoy haciendo un listado con thundbails pero tengo dos problemas!

Alguna idea?
  #8 (permalink)  
Antiguo 13/12/2007, 16:47
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Re: Estoy haciendo un listado con thundbails pero tengo dos problemas!

pues yo no veo nada :/
todo caso si te da problemas de border es solo cosa de poner en la imagen border="0"
__________________
Gokuh Salvo al mundo. PUNTO!!!!
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 14:35.