加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php实现图片增加文字水印程序代码

发布时间:2023-05-29 12:41:22 所属栏目:PHP教程 来源:
导读:使用过dedecms的朋友就会发现它可以实现图片上加图片水印也可以直接实现图片上加文本水印了,下面我来给大家介绍的是图片上加文字水印的方法,希望例子能帮助到各位.php实现图片添加文字水印程序代码如下:/*PHP图片加文

使用过dedecms的朋友就会发现它可以实现图片上加图片水印也可以直接实现图片上加文本水印了,下面我来给大家介绍的是图片上加文字水印的方法,希望例子能帮助到各位.

php实现图片添加文字水印程序代码如下:

/*PHP图片加文字水印类库 

该类库暂时只支持文字水印,位置为右下角,颜色随机 

调用方法: 

1、在需要加水印的文件顶部引入类库: 

include_once 'imageClass.php'; 

2、声明新类: 

$tpl=new image_fu; 

3、给图片水印提供参数: 

$tpl->img(图片路径,水印文字,字体路径,字体大小,字体角度); 

比如:$tpl->img('abc.jpg','这是水印文字','ziti.ttf',30,0) 

*/ 

//watermark.php 

<?php 

class image_fu{ 

private $image; 

private $img_info; 

private $img_width; 

private $img_height; 

private $img_im; 

private $img_text; 

private $img_ttf=''; 

private $img_new; 

private $img_text_size; 

private $img_jd; 

function img($img='',$txt='',$ttf='',$size=12,$jiaodu=0){ 

if(isset($img)&&file_exists($img)){//检测图片是否存在 

$this->image   =$img; 

$this->img_text=$txt; 

$this->img_text_size=$size; 

$this->img_jd=$jiaodu; 

if(file_exists($ttf)){ 

$this->img_ttf=$ttf; 

}else{ 

exit('字体文件:'.$ttf.'不存在!'); 

$this->imgyesno(); 

}else{ 

exit('图片文件:'.$img.'不存在'); 

private function imgyesno(){ 

$this->img_info  =getimagesize($this->image); 

$this->img_width =$this->img_info[0];//图片宽 

$this->img_height=$this->img_info[1];//图片高 

//检测图片类型 

switch($this->img_info[2]){ 

case 1:$this->img_im = imagecreatefromgif($this->image);break; 

case 2:$this->img_im = imagecreatefromjpeg($this->image);break; 

case 3:$this->img_im = imagecreatefrompng($this->image);break; 

default:exit('图片格式不支持水印'); 

}//开源代码Cuoxin.com 

$this->img_text(); 

private function img_text(){ 

imagealphablending($this->img_im,true); 

//设定颜色 

$color=imagecolorallocate($this->img_im,rand(0,255),rand(0,255),rand(0,255)); 

$txt_height=$this->img_text_size; 

$txt_jiaodu=$this->img_jd; 

$ttf_im=imagettfbbox($txt_height,$txt_jiaodu,$this->img_ttf,$this->img_text); 

$w = $ttf_im[2] - $ttf_im[6]; 

$h = $ttf_im[3] - $ttf_im[7]; 

//$w = $ttf_im[7]; 

//$h = $ttf_im[8]; 

unset($ttf_im); 

$txt_y     =$this->img_height-$h; 

$txt_x     =$this->img_width-$w; 

//$txt_y     =0; 

//$txt_x     =0; 

$this->img_new=@imagettftext($this->img_im,$txt_height,$txt_jiaodu,$txt_x,$txt_y,$color, 

$this->img_ttf,$this->img_text); 

@unlink($this->image);//删除图片 

switch($this->img_info[2]) {//取得背景图片的格式 

case 1:imagegif($this->img_im,$this->image);break; 

case 2:imagejpeg($this->img_im,$this->image);break; 

case 3:imagepng($this->img_im,$this->image);break; 

default: exit('水印图片失败'); 

//显示图片 

function img_show(){echo '<img src="'.$this->image.'" border="0" alt="'.$this->img_text.'" />';} 

//释放内存 

private function img_nothing(){ 

unset($this->img_info); 

imagedestroy($this->img_im); 

$addwk    =    new image_fu(); 

$addwk->img('2.jpg','testwatermark','华康少女字体.ttf',33,0); 

$addwk->img_show();   //调用显示图片 

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!