tengo un codigo que capta una imagen de un formulario y lo redimensiona a una altura y anchura maxima (un vil y comun thumbnail) el detalle radica en que los gif y png con fondos transparentes me los deja negro, encontre buscando por ahi un par de codigos como el imagecolortransparent pero no se como implementarlo, vi los manuales y nada no logro entenderlo
ahi va mi script que actualmente uso:
Código PHP:
//imagen
if (is_uploaded_file($_FILES['logo']['tmp_name'])) {
$max = 200;
$pic = $_FILES['logo']['tmp_name'];
$datos = getimagesize($pic);
if($datos[2]==1){$im = @imagecreatefromgif($pic);}
if($datos[2]==2){$im = @imagecreatefromjpeg($pic);}
if($datos[2]==3){$im = @imagecreatefrompng($pic);}
$x = imagesx($im);
$y = imagesy($im);
if(($x > $max) OR ($y > $max)) {
if($x >= $y){
$nx = $max;
$ny = $max * $y/$x;
}else{
$ny = $max;
$nx = $max * $x/$y;
}
}
$img = imagecreatetruecolor($nx,$ny);
imagecopyresampled($img,$im,0,0,0,0,$nx,$ny,$x,$y) ;
if($datos[2]==1){imagegif($img,$_FILES['logo']['name']);}
if($datos[2]==2){imagejpeg($img,$_FILES['logo']['name'],75);}
if($datos[2]==3){imagepng($img,$_FILES['logo']['name']);}
imagedestroy($img);
} else {
echo "error en el envio";
}
//fin imagen