buenas, eh creado una funcion que redimensiona imagenes jpg png bmp y gif a gif, el problema es que en los gif o png con transparencias esta se pone negra. trate de averiguar en google como solucionarlo, pero no encuentro nada concreto
por favor si pueden ayudarme les estaria muy agradecido.
saludos
pd aqui les dejo la funcion, si quieren pueden usarla
Código PHP:
function thumbgif($anchura,$dir) {
$file_name = $_FILES["upicon"]["name"];
if(is_uploaded_file($_FILES["upicon"]["tmp_name"])) {
move_uploaded_file($_FILES["upicon"]["tmp_name"], $dir.$file_name) or exit(__('Can\'t find destination folder','downloads-manager'));
$dm_upload_url = $dir.$file_name;
$dm_message = '<div class="updated fade" id="message"><p>'.__('Icon Uploaded','downloads-manager').'</p></div>';
} else {
$dm_message = '<div class="updated fade" id="message"><p>'.__('Error during upload of','downloads-manager').' '.$_FILES["upfile"]["name"].'</p></div>';
}
// Aquí tendremos el nombre de la imagen y comprobamos la extencion
$imagen = $dir.$_FILES['upicon']['name'];
$nombre=basename($imagen);
$name=$_POST["dm_icon_name"];
$partes = explode('.', $nombre);
$ext = strtolower(end($partes));
// Aquí la ruta especificada para buscar la imagen.
$camino=dirname($imagen)."/";
if ($ext == 'jpeg' or $ext == 'jpg' ) {
$img = @imagecreatefromjpeg($camino.$nombre) or exit("No se encuentra la imagen $camino$nombre<br>\\n");
}elseif($ext == 'png'){
$img = @imagecreatefrompng($camino.$nombre) or exit("No se encuentra la imagen $camino$nombre<br>\\n");
}elseif($ext == 'gif'){
$img = @imagecreatefromgif($camino.$nombre) or exit("No se encuentra la imagen $camino$nombre<br>\\n");
}elseif($ext == 'bmp'){
$img = @imagecreatefromwbmp($camino.$nombre) or exit("No se encuentra la imagen $camino$nombre<br>\\n");
}else{echo $ext.'No es una extencion de imagen valida para el script';}
// miramos el tamaño de la imagen original...
$datos = getimagesize($camino.$nombre) or exit("Problemas con $camino$nombre<br>\\n");
// intentamos escalar la imagen original a la medida que nos interesa
$ratio = ($datos[1] / $datos[0]);
$altura = round($anchura * $ratio);
// esta será la nueva imagen reescalada
$thumb = imagecreatetruecolor($anchura,$altura);
// con esta función la reescalamos
imagecopyresampled ($thumb, $img, 0, 0, 0, 0, $anchura, $altura, $datos[0], $datos[1]);
// salvamos con el nombre y en el lugar que nos interesa.
if(empty($name)){$name=$partes[0];}
imagegif($thumb,$camino.$dir_thumb.$name.'.gif');
unlink($camino.$nombre);
}