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.