(被禽兽般的GD折磨得不成人形,只剩一个衣角了……)
今早被GD强暴了……太多问题,总结一下经验。
生成文字水印,无法就是将文字变成透明png后copy到主图片里……所以这里你是先用imagettftext将文字变水印图片,还是直接用水印图片,没什么区别。
imagecopymerge() 不支持第2个参数画图的透明,要用imagecopy。
使用imagettftext()前通过phpinfo()检查你的GD是否支持TrueType,不然白忙活。
imagettftext()里的字体要用相对路径,或绝对路径,不要用URL。
比手册好看点的imagettftext参数介绍:imagettftext($sourceImg, $size, 0, 100, 200, $white, $font, $str); //图像、大小、弧度、X高、Y宽、颜色、字体、内容
imagesavealpha($shuiyin_im, true); 这样可以使打开的png不丢失alpha通道。
header图片及输出不需要繁多的if,可以这样:
$imagetype = array("1"=>"gif","2"=>"jpeg","3"=>"png"); $iinfo=getimagesize(‘图片文件’) header("Content-type: ".$iinfo['mime']); $f ="imagecreatefrom".$imagetype[$iinfo[2]]; $simage = $f($destination); $f ="image".$imagetype[$iinfo[2]]; $f($simage,$destination);//相当于imagejpeg('图像')
每次处理完一副图像后记得要释放空间imagedestroy($im),否则太浪费服务器资源了……
送一个缩略图+生成水印的类……欢迎下载试用。
发表回复