Hola buenos días, Tengo un pequeño problema con un script que redimensiono al mismo tamaño las imagenes por ejemplo de 200x200 que da igual el tamaño que tenga la imagen original.
El problema que veo que me sale una ralla negra dentro del thumbnails.
Os paso el script a ver si alguien me puede ayudar.
Código PHP:
<?
# Variables para la class
# **********************************************************
$ruta_original = "imagenes/";
$ruta_thumnbails = "imagenes/comp/";
$width_original = 200;
$height_original = 200;
$quality = 90;
$background = "255,255,255";
$name_original = "4242006180812.jpg";
$name_thumnbails = "4242006180812.jpg";
$file = $ruta_original.$name_original;
$savePath = $ruta_original.$ruta_thumnbails;
# Obtenemos la informacion de la imagen, el array info tendra los siguientes indices:
# [0] ancho de la imagen
# [1] alto de la imagen
# **********************************************************
$info = getimagesize($file);
# Extensión del archivos
# **********************************************************
$extension = explode(".",$name_original);
$ext = count($extension)-1;
# COMPRIMIR JPG
# **********************************************************
if(strcasecmp($extension[$ext],"jpg") == 0 || strcasecmp($extension[$ext],"jpeg") == 0)
$image = @imagecreatefromjpeg($file);
elseif(strcasecmp($extension[$ext],"png") == 0)
$image = @imagecreatefrompng($file);
elseif(strcasecmp($extension[$ext],"gif") == 0)
$image = @imagecreatefromgif($file);
if($info[0] == $info[1])
{
$xpos = 0;
$ypos = 0;
$width = $info[1];
$height = $info[1];
}else{
if($info[0] < $info[1])
{
//imagen horizontal
$xpos = ceil(($info[0] - $info[1]) /2);
$ypos = 0;
$width = $info[1];
$height = $info[1];
}else{
//imagen vertical
$xpos = 0;
$ypos = ceil(($info[1] - $info[0]) /2);
$width = $info[0];
$height = $info[0];
}
}
# Creamos una nueva imagen cuadrada con las dimensiones que queremos:
# **********************************************************
$image_new = @imagecreatetruecolor($width_original, $height_original);
# bgcolor
# **********************************************************
$bgcolor = imagecolorallocate($image_new, $background);
#
# **********************************************************
imagecopyresampled($image_new, $image, 0, 0, $xpos, $ypos, $width_original, $height_original, $width, $height);
# Relleno de color
# **********************************************************
imagefill($image_new, 0, 0, $bgcolor);
imagefill($image_new, ($width_original-1), 0, $bgcolor);
imagefill($image_new, 0, ($width_original-1), $bgcolor);
# Guardamos la nueva imagen como jpg con una quality del 85%
# **********************************************************
if(strcasecmp($extension[$ext],"jpg") == 0 || strcasecmp($extension[$ext],"jpeg") == 0)
{
if ($exito = @imagejpeg($image_new, $ruta_thumnbails.$name_thumnbails, $quality))
{
@imagedestroy($image_new);
return true;
}
}
elseif(strcasecmp($extension[$ext],"png") == 0)
{
if ($exito = @imagepng($image_new, $ruta_thumnbails.$name_thumnbails, ($quality/10)))
{
@imagedestroy($image_new);
return true;
}
}
elseif(strcasecmp($extension[$ext],"gif") == 0)
{
if ($exito = @imagegif($image_new, $ruta_thumnbails.$name_thumnbails, $quality))
{
@imagedestroy($image_new);
return true;
}
}
elseif(strcasecmp($extension[$ext],"bmp") == 0)
{
@copy ($file, $ruta_thumnbails.$name_thumnbails);
return true;
}
?>