Resample png and gif images correctly with transparency.
<?php
// ...
if ($imageMimeType == 'image/png') {
// enable png transparency
imagealphablending($scaledImage, false);
$transparentColor = imagecolorallocatealpha($scaledImage, 0, 0, 0, 127);
imagefill($scaledImage, 0, 0, $transparentColor);
imagesavealpha($scaledImage, true);
} else if ($imageMimeType == 'image/gif') {
// enable gif transparency
$transparentColor = imagecolortransparent($image);
if ($transparentColor >= 0) { // gif is transparent
$colorIndex = imagecolorsforindex($image, $transparentColor);
$transparentColor = imagecolorallocate($scaledImage, $colorIndex['red'], $colorIndex['green'], $colorIndex['blue']);
imagefill($scaledImage, 0, 0, $transparentColor);
imagecolortransparent($scaledImage, $transparentColor);
}
}
// ...