Hola muy buenas,
Porque me rellena todo el fondo de color negro el thumbnails?
Más que estoy dando le vueltas no puedo solucionarlo.
Me pueden ayudar?
Código PHP:
class Thumbnails
{
function compress()
{
if (empty($this->quality))
$this->quality = 10;
if (empty($this->width))
$this->width = 200;
if (empty($this->height))
$this->height = 200;
if (empty($this->name_thumnbails))
$this->name_thumnbails = $this->name_original;
$file = $this->ruta_original.$this->name_original;
$savePath = $this->ruta_original.$this->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
// mime: el mime_type de la imagen
$info = getimagesize($file);
# Extensión del archivos
# **********************************************************
$extension = explode(".",$this->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
$ypos = ceil(($info[1] - $info[0]) /2);
$xpos = 0;
$width = $info[0];
$height = $info[0];
}
}
//Creamos una nueva imagen cuadrada con las dimensiones que queremos:
$image_new = imagecreatetruecolor($this->width, $this->height);
$bgcolor = imagecolorallocate($image_new, 255, 255, 255);
imagefilledrectangle($image_new, 0, 0, $this->width, $this->height, $bgcolor);
imagealphablending($image_new, true);
//Copiamos la imagen original con las nuevas dimensiones
imagecopyresampled($image_new, $image, 0, 0, $xpos, $ypos, $this->width, $this->height, $width, $height);
//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, $this->ruta_thumnbails.$this->name_thumnbails, $this->quality))
{
imagedestroy($image_new);
return true;
}
}
elseif(strcasecmp($extension[$ext],"png") == 0)
{
if ($exito = imagepng($image_new, $this->ruta_thumnbails.$this->name_thumnbails, ($this->quality/10)))
{
imagedestroy($image_new);
return true;
}
}
elseif(strcasecmp($extension[$ext],"gif") == 0)
{
if ($exito = imagegif($image_new, $this->ruta_thumnbails.$this->name_thumnbails, $this->quality))
{
imagedestroy($image_new);
return true;
}
}
elseif(strcasecmp($extension[$ext],"bmp") == 0)
{
copy ($file, $this->ruta_thumnbails.$this->name_thumnbails);
return true;
}
return false;
}
}