Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/08/2007, 16:04
caberod
Usuario no validado
 
Fecha de Ingreso: febrero-2002
Mensajes: 7
Antigüedad: 22 años, 2 meses
Puntos: 0
Redimensionado de imágenes

Hola, encontré buscando por internet una función bastante completa para el redimensionado de imágenes:

function redimensionar_imagen($img_original, $img_nueva, $img_nueva_altura, $img_nueva_calidad)
{
// crear una imagen desde el original
$datos = getimagesize($img_original);
if($datos[2]==1){$img = @imagecreatefromgif($img_original);}
if($datos[2]==2){$img = @imagecreatefromjpeg($img_original);}
if($datos[2]==3){$img = @imagecreatefrompng($img_original);}
$altura = $img_nueva_altura;
$ratio = (ImageSY($img) / $altura);
$anchura = round(ImageSX($img) / $ratio);
$thumb = imagecreatetruecolor($anchura,$altura); // redimensiona la imagen original copiandola en la imagen
imagecopyresampled($thumb,$img,0,0,0,0,$anchura,$a ltura,ImageSX($img),ImageSY($img)); // guardar la nueva imagen redimensionada donde indicia $img_nueva
if($datos[2]==1){imagegif($thumb,$img_nueva,$img_nueva_calidad );}
if($datos[2]==2){imagejpeg($thumb,$img_nueva,$img_nueva_calida d);}
if($datos[2]==3){imagepng($thumb,$img_nueva,$img_nueva_calidad ); }
ImageDestroy($img);
}


y funciona muy bien, el único problema es cuando tengo un GIF o PNG con transparencia que al redimensionarla el fondo transparente me aparece en negro. ¿Cuál sería la solución para mantener la transparencia de la imagen al redimensionarla?

Muchas gracias y un saludo.