给图片加水印是很多网站会做的事情,下面这段代码只支持给图片加上文字水印,现在暂时只支持英文的,如果要让此程序能支持中文汉字就把$font=///'verdana.ttf///';调用一个中文字体就OK了,实例代码如下:
代码如下:
$image=$_get[id];
$im=getimagesize($image);
//print_r($im);
//以下是读取文字的宽高
$font='verdana.ttf';//字体
$font_size = $im[0]/20;//文字大小
$size=imagettfbbox($font_size,0,$font,'phpfensi.com');//文字宽高
$textwidth = $size [4];//取出宽
$textheight = abs( $size [7] );//取出高
$pic_w=abs(($im[0]-$textwidth)/2);//文字存放宽的位置
$pic_h=abs(($im[1]-$textheight)/2);//文字存放高的位置
switch($im[2])
{
case 1:
$im=imagecreatefromgif($image);
break;
case 2:
$im=imagecreatefromjpeg($image);
break;
case 3:
$im=imagecreatefrompng($image);
break;
}
//$logo="2.png";//商标图片
//$ing=getimagesize($logo);
//
// switch($ing[2])
//
//{
//case 1:
//$in=imagecreatefromgif($logo);
//break;
//
//case 2:
//$in=imagecreatefromjpeg($logo);
//break;
//
//case 3:
//$in=imagecreatefrompng($logo);
//break;
//}
//imagecopy($im,$in,200,3,0,0,'120','110');//图片合并
$te = imagecolorclosestalpha($im,255,255,255,60);//最后一个数值是透明度越大越透明
$str=iconv("gbk","utf-8","phpfensi.com"); //设置文字的内容和编码,很简单吧
imagettftext($im,$font_size,0,$pic_w,$pic_h,$te,'verdana.ttf',$str);
//开源代码phpfensi.com
header("content-type: image/jpeg");
imagejpeg($im);
新闻热点
疑难解答