Ver Mensaje Individual
  #5 (permalink)  
Antiguo 06/09/2007, 12:07
Avatar de @padawan@
@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.