¿Cómo cambio el tamaño de pngs con transparencia en PHP?

Estoy tratando de cambiar el tamaño de pngs con fondos transparentes en PHP y las muestras de código que he encontrado en línea no me funcionan. Aquí está el código que estoy usando, ¡los consejos serán muy apreciados!

$this->image = imagecreatefrompng($filename);

imagesavealpha($this->image, true);
$newImage = imagecreatetruecolor($width, $height);

// Make a new transparent image and turn off alpha blending to keep the alpha channel
$background = imagecolorallocatealpha($newImage, 255, 255, 255, 127);
imagecolortransparent($newImage, $background);
imagealphablending($newImage, false);
imagesavealpha($newImage, true);

imagecopyresampled($newImage, $this->image, 0, 0, 0, 0, $width, $height,  $this->getWidth(), $this->getHeight());
$this->image = $newImage;  
imagepng($this->image,$filename);


Actualizar Al decir "no funciona" quise decir que el color de fondo cambia a negro cuando cambio el tamaño de los png.

Respuestas a la pregunta(9)

Su respuesta a la pregunta