Final version (preserves full alpha transparency):
Code: Select all
<?php
// watermark_wrapper.php
define('MIN_WIDTH', 225);
define('MIN_HEIGHT', 225);
// Path to the requested file
$path = $_SERVER['DOCUMENT_ROOT'].$_SERVER['REQUEST_URI'];
// Load the requested image
$image = imagecreatefromstring(file_get_contents($path));
$w = imagesx($image);
$h = imagesy($image);
if ($w >= MIN_WIDTH && $h >= MIN_HEIGHT) {
// Load the watermark image
$watermark = imagecreatefrompng('watermark.png');
$ww = imagesx($watermark);
$wh = imagesy($watermark);
// Merge watermark upon the original image
//imagecopy($image, $watermark, $w-$ww, $h-$wh, 0, 0, $ww, $wh);// place watermark in lower right corner
//imagecopy($image, $watermark, (($w/2)-($ww/2)), (($h/2)-($wh/2)), 0, 0, $ww, $wh);// center watermark
imagecopy($image, $watermark, (($w/96)-($ww/96)), (($h/96)-($wh/96)), 0, 0, $ww, $wh);// place watermark in upper left corner
imagealphablending($image, false);
imagesavealpha($image, true);
// Send the image
header('Content-Type: ' . $image_data['mime']);
imagepng($image,null,0,PNG_NO_FILTER);
imagedestroy($image);
imagedestroy($watermark);
exit();
} else {
imagecopy($image);// no watermark
imagealphablending($image, false);
imagesavealpha($image, true);
// Send the image
header('Content-Type: ' . $image_data['mime']);
imagepng($image,null,0,PNG_NO_FILTER);
imagedestroy($image);
imagedestroy($watermark);
exit();
}
?>