Hola amigas/os a ver si me pueden ayudar con esto.
Tengo un metodo que me funciona bien a la hora de redimensionar y guardar una imagen.
Pero las imagens png con fondo transparente me las pone con fondo negro.
Y claro esto no puede ser.
Lo he intentado usando "imagecolorallocate" y "imagecolortransparent" pero no me funciona.
Y tengo la lebreria GD.
Y estoy trabajando en local.
Pongo aqui mi metodo a ver si me pueden ayudar para que me salgan las imagenes con su transparencia de fondo .
Gracias de antemano.
Código PHP:
Ver original//---Método de extraer una sección de la imagen sin deformarla
function crop($cwidth, $cheight, $pos = 'center')
{
//---Dependiendo del tamaño deseado redimensionar primero la imagen a uno de los valores
if($cwidth > $cheight)
{
$this->resize($cwidth, 'width');
}
else
{
$this->resize($cheight, 'height');
}
//---Crear la imagen tomando la porción del centro de la imagen redimensionada con las dimensiones deseadas
//Fondo blanco
// Hacer el fondo transparente
switch($pos)
{
case 'center':
imagecopyresampled($image, $this->image, 0, 0, abs(($this->width - $cwidth) / 2), abs(($this->height - $cheight) / 2), $cwidth, $cheight, $cwidth, $cheight); break;
case 'left':
imagecopyresampled($image, $this->image, 0, 0, 0, abs(($this->height - $cheight) / 2), $cwidth, $cheight, $cwidth, $cheight); break;
case 'right':
imagecopyresampled($image, $this->image, 0, 0, $this->width - $cwidth, abs(($this->height - $cheight) / 2), $cwidth, $cheight, $cwidth, $cheight); break;
case 'top':
imagecopyresampled($image, $this->image, 0, 0, abs(($this->width - $cwidth) / 2), 0, $cwidth, $cheight, $cwidth, $cheight); break;
case 'bottom':
imagecopyresampled($image, $this->image, 0, 0, abs(($this->width - $cwidth) / 2), $this->height - $cheight, $cwidth, $cheight, $cwidth, $cheight); break;
}
$this->image = $image;
}