今天用php脚本将没加水印的图片加水印的时候发现一个问题,用imagecopy
时有些压缩的PNG图片加水印的时候会出现色块,然后google找了一下,有些说把imagecopymerge
换成imagecopy
,我....。还有一些做法是创建图片,填充颜色,然后将填充的颜色转为透明,这种做法跟外面圈了一圈马赛克一样,很不好看。
原代码:
$bgimg = imagecreatefrompng('bg.png');
$logoimg = imagecreatefrompng("logo.png");
$bginfo = getimagesize($uploadurl);
$logoinfo = getimagesize('logo_b.png');
imagecopy($bgimg,$logoimg,$bginfo[0]-$logoinfo[0]-40,$bginfo[1]-$logoinfo[1]-30,0,0,$logoinfo[0],$logoinfo[1]);
imagepng($bgimg,"newbg.png");
效果:
后面研究发现,只要新建一个画布,先复制到新画布,再把水印复制上去就可以了。
<?php
$bgimg = imagecreatefrompng('bg.png');
$logoimg = imagecreatefrompng("logo.png");
$bginfo = getimagesize($uploadurl);
$logoinfo = getimagesize('logo_b.png');
$newimg= imagecreatetruecolor($bginfo[0],$bginfo[1]);
imagecopy($newimg,$bgimg,0,0,0,0,$bginfo[0],$bginfo[1]);
imagecopy($newimg,$logimg,$bginfo[0]-$logoinfo[0]-40,$bginfo[1]-$logoinfo[1]-30,0,0,$logoinfo[0],$logoinfo[1]);
imagepng($bgimg,"newbg.png");
效果图:
本文作者:风雪,转载时请注明本文出处:https://www.fxnetw.com/74.html
共
0
条评论