全图PNG覆盖GIF,PNG,JPG

时间:2012-02-15 19:37:06

标签: php gd

我想制作一个完整的图像水印,可用于jpg,gif和png文件。但 它似乎没有工作。我的想法就是拥有一个1024x768透明的PNG-8 图像(并不重要,我只是按照this教程,然后就说了 建议使用它),将其大小调整为我想要叠加的图像大小,然后合并它们。 由于不是那么先进的GD,我不能让它工作,但是,这是我的代码:

$parts = explode('.', $filename);
$ext = $parts[count($parts)-1];

switch ($ext) {
    case 'jpg':
        $image = imagecreatefromjpeg($dir . $filename);
        break;
    case 'jpeg':
        $image = imagecreatefromjpeg($dir . $filename);
        break;
    case 'png':
        $image = imagecreatefrompng($dir . $filename);
        break;
    case 'gif':
        $image = imagecreatefromgif($dir . $filename);
        break;
}

$overlay = imagecreatefrompng($overlay);
$overlayNew = imagecreatetruecolor(imagesx($image), imagesy($image));
imagecolortransparent($overlayNew, imagecolorallocatealpha($overlayNew, 0, 0, 0, 127));
imagealphablending($overlayNew, false);
imagesavealpha($overlayNew, true);

imagecopyresized( $overlayNew , $overlay , 0 , 0 , 0 , 0 , imagesx($image) , imagesy($image) ,imagesx($overlay) , imagesy($overlay) );
imagecopymerge($image, $overlayNew,0, 0, 0, 0, imagesx($overlayNew), imagesy($overlayNew), $opacity);

$parts = explode(".", $filename);
imagepng($image, $dir . $parts[0] . '_watermarked.png');

0 个答案:

没有答案