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; }