oncode
2/6/2014 - 2:15 PM

Resample png and gif images correctly with transparency.

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

// ...