php给一张图片加上水印效果
2015-12-29 17:34
681 查看
<?php /** * 功能:给一张图片加上水印效果 * $i 要加水印效果的图片 * $t 水印文字 * $size 文字大小 * $pos 水印的位置 * $color 文字的颜色 * $flag 是布尔值,主要用来区分是不是原图上加水印 * $type 如果$flag等于false 则新图上加上水印 新文件名为 原名_txt.jpg */ function txt($i,$t='版权所有',$size=25,$pos=5,$color='rand',$flag=true,$type='_txt'){ $img = imagecreatefromjpeg($i); $w = imagesx($img); $h = imagesy($img); $font = dirname(__FILE__).'/font/ls.ttf'; $ps = imagettfbbox($size,0,$font,$t); $tw = $ps[4]; $th = abs($ps[5]); switch($pos){ case 1:break; case 2:break; case 3:break; case 4:break; case 5:$x=($w-$tw)/2;$y=($h-$th)/2+$th;break; case 6:break; case 7:break; case 8:break; case 9:break; default:break; } $c = getcolor($img,$color); imagettftext($img,$size,0,$x,$y,$c,$font,$t); if($flag){ imagejpeg($img,$i); }else{ $ext = ext($i); $ppp = rtrim($i,'.'.$ext); $ppp = $ppp.$type.'.'.$ext; imagejpeg($img,$ppp); } } function getcolor($i,$c='rand',$a=50){ $cc = ''; switch($c){ case 'white':$cc=imagecolorallocatealpha($i,255,255,255,$a);break; case 'black':$cc=imagecolorallocatealpha($i,0,0,0,$a);break; case 'red':$cc=imagecolorallocatealpha($i,255,0,0,$a);break; case 'green':$cc=imagecolorallocatealpha($i,0,255,0,$a);break; case 'blue':$cc=imagecolorallocatealpha($i,0,0,255,$a);break; case 'orange':$cc=imagecolorallocatealpha($i,0xff,0x66,0x33,$a);break; case 'yellow':$cc=imagecolorallocatealpha($i,255,255,0,$a);break; case 'rand':$cc=imagecolorallocatealpha($i,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255),$a);break; default: $cs = substr($c,1); $ok = str_split($cs,2); $cc = imagecolorallocatealpha($i,hexdec($ok[0]),hexdec($ok[1]),hexdec($ok[2]),$a); break; } return $cc; } /** * 功能是:返回扩展名 */ function ext($f){ $exts = explode('.',$f); return end($exts); } /** * 功能是:返回文件名,不含扩展名 */ function name($f){ $s = explode('/',$f); $fn = end($s); return rtrim($fn,'.'.ext($f)); }
相关文章推荐
- php静态属性和静态方法总结
- PHP在多维数组指定位置插入单元
- php取数组随机数
- Macbook Pro配置PHP开发环境
- PHP WebSocket 客户端类 WebSocketClient
- Yii2 rules常用规则
- 解决PHP生成UTF-8编码的CSV文件用Excel打开乱码的问题
- php无限分类 树状菜单经典代码
- 解决ajax请求出现'302 moved temporarily'问题
- php删除字符串中的所有空格
- 详解WordPress中创建和添加过滤器的相关PHP函数
- yii2.0 控制器方法 视图表单 Form表单处理
- Php反转字符串函数
- 项目上线,php的错误信息必须不让其在页面中显示给客户,
- PHP 汉字转拼音类(全拼与首字母)
- excel文件怎么使用php进行处理
- yii,CI,yaf框架+smarty模板使用方法
- PHP函数 ------ uniqid
- PHP函数 ------ ctype_alnum
- 利用PHP函数计算中英文字符串长度的方法