图像加水印

加载图片

首先先加载图片,此处分为两种方法。

第一种,imagecreatefromgd 从GD文件或URL新建图像。gd可以换成gd2、gif、png、jpeg。

第二种,imagecreatefromstring() 从字符串中的图像流新建图像(php支持jpeg、png、gif、wbmp、GD2)。

语法为resource ~(string $image) $image表示字符串流,一个字符串包含图片的所有数据。成功返回图片资源,失败false。

将整个文件读入一个字符串

file_get_contents()

$str = file_get_contents($imgfile);

加载一个字符串时,编码格式若不是utf8格式需要进行转换。涉及两个函数,iconv() , mb_convert_encoding()

iconv(原,新,字符串);

mb_convert_encoding(字符串,新,原)。

// $str = iconv("gb2312", "utf-8", $str);
 $str = mb_convert_encoding($str, "utf-8","gb2312");

检查文件或目录是否存在

file_exists() 存在true不存在false

$font = "STCAIYUN.TTF";    //中文库
if(!file_exists($font)){
	die('字体库文件不存在');
}

加水印

即在图像上输出字符串

1)将.jpg文件放入一个字符串(file_get_contents)

2)创建图像并判断是否成功(imagecreatefromstring)

3)写文字,判断字体库是否存在,还要注意是中文库(imagettftext、file_exists)

4)输出图像 imagepng($img,new '  ') new中可以写新的文件名

5)销毁图像

这样水印就加好啦。

 

你可能感兴趣的:(图像加水印)