当前位置:首页 > 日记 > 正文

水印代码

水印代码
支持文本水印和图像水印
水印的位置是随机的或固定的。
水印透明设置(图像水印和文本水印都被支持)
文本水印的字体、颜色和大小
图像水印的背景透明性
复制代码代码如下所示:
< PHP

*添加水打印类,支持文本图片水印的透明设置,水印图片背景透明。
*日期:2011-09-27
*作者:
*使用:
* $ obj =新watermask($ imgfilename); / /对象实例化
* $ obj -> $类型= 1; / /类型:0, 1文字水印图像水印
* $ obj -> $透明= 45; / /水印的透明度
* $ obj -> waterstr美元= ''; / /文本水印
* $ obj ->字体美元= 16; / /文本的字体大小
* $ obj ->字体颜色=阵列(2550255美元); / /文本颜色(RGB)水印
* $ obj ->字体= = 'ahgbold美元。TTF '; / /字体文件
*($ obj ->输出); / /输出文件覆盖水印图像输入图像文件
* /
类watermask {
公共类型= 1美元; / / 0类型:图像水印水印、文本水印,1
公众POS = 0美元; / /轴
公共$透明= 45;

公共waterstr美元= ''; / /文本水印
公共字体= 16美元; / /文本的字体大小
公共$字体颜色=阵列(2550255); / /文本颜色(RGB)水印
公共专业= 'ahgbold美元。TTF '; / /字体文件

公共waterimg美元= 'logo。png; / /水印图像

私人srcimg美元= ''; / /添加水印的图片
私有$。
私人water_im美元= ''; / /处理水印图像
私人srcimg_info美元= ''; / /图片信息
私人waterimg_info美元= ''; / /图片水印信息
私人str_w美元= ''; / /水印文字宽度
私人str_h美元= ''; / /水印文字高度
私人$ x = x X水印坐标
私人$ y = ; Y / Y水印坐标

功能__construct($ IMG){ / /析构函数
美元-> srcimg = file_exists($美元IMG)IMG:死(''。$ IMG的源文件不存在!);
}
私有函数(imginfo){ / /得到的图片需要添加水印信息,并加载图片。
美元-> srcimg_info = getimagesize(美元-> srcimg);
开关(美元-> srcimg_info { 2 }){
案例3:
美元->我= imagecreatefrompng(美元-> srcimg);
突破1;
案例2:
美元->我= imagecreatefromjpeg(美元-> srcimg);
突破1;
案例1:
美元->我= imagecreatefromgif(美元-> srcimg);
突破1;
违约:
模具(''。美元-> srcimg格式不正确,只有PNG,JPEG,GIF。);
}
}
私有函数(waterimginfo){ / /得到水印图像信息,并加载图片。
美元-> waterimg_info = getimagesize(美元-> waterimg);
开关(美元-> waterimg_info { 2 }){
案例3:
美元-> water_im = imagecreatefrompng(美元-> waterimg);
突破1;
案例2:
美元-> water_im = imagecreatefromjpeg(美元-> waterimg);
突破1;
案例1:
美元-> water_im = imagecreatefromgif(美元-> waterimg);
突破1;
违约:
模具('watermark图像('。美元-> srcimg。)的格式不正确,只有PNG,JPEG,GIF。);
}
}
私有函数(waterpos){ / /水印算法的位置
开关($ - > POS){
案例0:随机位置
美元-> x =兰特(0美元-> srcimg_info { 0 } -美元-> waterimg_info { 0 });
美元-> Y =兰特(0美元-> srcimg_info { 1 } -美元-> waterimg_info { 1 });
突破1;
案例1:左侧
此$ = x = 0;
此$ = y = 0;
突破1;
案例2:
美元-> x =(美元-> srcimg_info { 0 } -美元-> waterimg_info { 0 }) / 2;
此$ = y = 0;
突破1;
案例3:右边
美元-> x =美元-> srcimg_info { 0 } -美元-> waterimg_info { 0 };
此$ = y = 0;
突破1;
案例4
此$ = x = 0;
美元-> Y =(美元-> srcimg_info { 1 } -美元-> waterimg_info { 1 }) / 2;
突破1;
案例5:
美元-> x =(美元-> srcimg_info { 0 } -美元-> waterimg_info { 0 }) / 2;
美元-> Y =(美元-> srcimg_info { 1 } -美元-> waterimg_info { 1 }) / 2;
突破1;
案例6
美元-> x =美元-> srcimg_info { 0 } -美元-> waterimg_info { 0 };
美元-> Y =(美元-> srcimg_info { 1 } -美元-> waterimg_info { 1 }) / 2;
突破1;
案例7
此$ = x = 0;
美元-> Y =美元-> srcimg_info { 1 } -美元-> waterimg_info { 1 };
突破1;
案例8:
美元-> x =(美元-> srcimg_info { 0 } -美元-> waterimg_info { 0 }) / 2;
美元-> Y =美元-> srcimg_info { 1 } -美元-> waterimg_info { 1 };
突破1;
默认值: /右
美元-> x =美元-> srcimg_info { 0 } -美元-> waterimg_info { 0 };
美元-> Y =美元-> srcimg_info { 1 } -美元-> waterimg_info { 1 };
突破1;
}
}
私有函数waterimg(){
如果(美元-> srcimg_info { 0 } waterimg_info { 0 }美元-> srcimg_info { 1 } waterimg_info { 1 } { | |)
死亡(水印比原作大!);
}
美元-> waterpos();
为减少=新建一个真彩色图像(美元-> waterimg_info { 0 },美元-> waterimg_info { 1 });
imagecopy(美元减少,美元-> IM,0,0,美元->美元-> X,Y,美元-> waterimg_info { 0 },美元-> waterimg_info { 1 });
$ = $;
imagecopy(美元减少,美元-> water_im,0,0,0,0,美元-> waterimg_info { 0 },美元-> waterimg_info { 1 });
拷贝并合并图像的一部分(美元-> IM,削减美元,美元->美元-> X,Y,0,0,美元-> waterimg_info { 0 },美元-> waterimg_info { 1 },$ %);
}
私有函数waterstr(){
美元(美元直接= imagettfbbox ->字体大小,0美元->美元->字体,waterstr);
$ W = ABS($ RECT { 2 }至矩形{ 6 });
$ H = ABS($ RECT { 3 }至矩形{ 7 });
fontheight美元=美元->字体;
美元-> water_im =新建一个真彩色图像($ W $ H);
imagealphablending(美元-> water_im,假);
imagesavealpha(美元-> water_im,真的);
white_alpha = imagecolorallocatealpha美元(美元-> water_im,255255255127);
imagefill(美元-> water_im,0,0,white_alpha美元);
颜色= imagecolorallocate美元(美元-> water_im,美元->字体颜色{ 0 },美元->字体颜色{ 1 },美元->字体颜色{ 2 });
imagettftext(美元-> water_im,美元->字体,0,0,美元->字体大小,颜色美元->美元,美元->字体,waterstr);
美元-> waterimg_info =阵列(0 = 1 = > > $ W $ H);
美元-> waterimg();
}
函数输出(){
美元-> imginfo();
如果(美元->类型= = 0){
美元-> waterstr();
{ }人
美元-> waterimginfo();
美元-> waterimg();
}
开关(美元-> srcimg_info { 2 }){
案例3:
imagepng(美元-> IM,美元-> srcimg);
突破1;
案例2:
imagejpeg(美元-> IM,美元-> srcimg);
突破1;
案例1:
imagegif(美元-> IM,美元-> srcimg);
突破1;
违约:
模具('add水印失败!);
打破;
}
销毁一图像(美元-> IM);
销毁一图像(美元-> water_im);
}
}
>

相关文章

没有睡眠和休眠功能被发现在Win8(溶

没有睡眠和休眠功能被发现在Win8(溶

休眠,溶液,功能,电脑软件,问题: 最近,我想体验Windows8系统和计算机上安装系统。发现Win8无睡眠和休眠功能,是Win8不支持上述两种功能 答案uff1a Win8系统支持睡眠和休眠,但它是关闭的默认情况下,可以通过以下方法打开。 打开控制面板系统电…

Windows使用包含文本的文本搜索不

Windows使用包含文本的文本搜索不

文本,文件,搜索,解决方案,电脑软件,注释:使用包含文本搜索包含密钥的文件,搜索目录中的所有文档,但某些文件无法搜索。这里有个好办法。需要帮助的朋友能理解它。 在Windows操作系统中,使用包含的文本来搜索不包含关键字的文件。 有时,在目录…

给予32点赞扬:深度体验游戏优化了主

给予32点赞扬:深度体验游戏优化了主

碎片,优化,深度,功能,游戏,对于游戏发烧友来说,上线已经成为每天必须要做的事。进程线游戏最怕什么不要害怕像上帝一样的对手,害怕成为一个猪的队友…玩游戏时,它是致命的!高级玩家必须使用游戏来优化大师的游戏优化工具,应该使用大师的抗干扰环…

linux32位机与64位机基本数据类型

linux32位机与64位机基本数据类型

基本数据类型,长度,电脑软件,评论:本文主要介绍Linux中32位机的基本数据类型长度与64位机器之间的区别,您需要的朋友可以参考一下。 基本数据类型 数据类型 三十二 六十四 烧焦 一 一 int 四 四 长 四 八 浮 四 四 双 八 八 长双 十二 十…

解决问题的GPT分区表时安装Linux

解决问题的GPT分区表时安装Linux

安装,分区表,解决问题,电脑软件,GPT,点评:如果Windows、VMware和Mac OS安装在服务器之前,当你安装Linux,你可能会遇到使用GPT分区表你的引导分区,但是该机不支持GPT启动问题的使用。 首先,如果在服务器上安装了Windows、VMware和Mac OS,当安装Li…

vmss.exe过程的意义是什么

vmss.exe过程的意义是什么

意义,过程,电脑软件,vmss,exe,评论:对vmss.exe工艺简介 进程文件:VMSS或vmss.exe 进程名称:Delfin媒体展示广告 过程类别:安全风险的过程 英文描述: wsxsvc.exe是该公司媒体观众的一部分。它是,观众,它也被称为以下两个方面。 中文参考: wsxsvc.e…

开盘后magic_quote_gpcSQL注入攻击

开盘后magic_quote_gpcSQL注入攻击

开盘,电脑软件,magic_quote_gpcSQL,使在php.ini配置文件相关的选项,你可以拒绝那些想使用SQL注入漏洞的黑客。 在magic_quote_gpc =打开,这两个函数的功能(如addslshes)和stripslashes()的实现。在PHP4.0及以上版本,此选项默认是打开的,所以在php4.…

什么时候Win8是无法连接到WiFi网络

什么时候Win8是无法连接到WiFi网络

网络,你是,什么时候,做什么,连接到,点评:现在智能手机越来越流行了。使用智能手机刷微博、微信的朋友越来越多。使用手机上网,使用wifi是必不可少的。它不仅可以省钱,还可以享受高速宽带。 如今,智能手机越来越流行。使用智能手机刷微博、微信…

portaol.exe的过程是怎样的PortAOL

portaol.exe的过程是怎样的PortAOL

是怎样,过程,电脑软件,portaol,exe,评论:详细的介绍了portaol.exe - portaol过程 进程文件:portaol或portaol.exe 过程名称:端口魔术组件 过程类别:安全风险的过程 英文描述: portaol.exe是一个过程,属于纯网络端口的魔法。这是一个应用程序与A…

用PHP递归循环每个目录

用PHP递归循环每个目录

递归,循环,目录,电脑软件,PHP,函数的原理非常简单,主要使用递归调用。 复制代码代码如下所示: 功能file_list($路径){ 如果($处理= opendir($路径)){ (假)!= =($文件= readdir($处理))){ 如果($文件)!= $文件!{){ 如果(is_dir($路径。$文件){ 返回路径。:.$file. ;删…

迅雷看看已经发布了新版本的客户:通

迅雷看看已经发布了新版本的客户:通

客户,新版本,路由器,迅雷,小米,4月17日,迅雷看看发布了新版本的Android客户端最近。它首次打开1080p高清视频,并将下载管理模式与小米路由器相结合。 迅雷看看Android新的离线空间功能的新版本,这个功能可以下载到服务器离线视频,手机不占用存…

在DebianLinux的基本知识介绍

在DebianLinux的基本知识介绍

基本知识,电脑软件,DebianLinux,注释:IP地址设置: 动态DHCP #启动系统启动装置 #环回地址 自动登录 Iface Lo网络环回 #启动系统启动装置 #卡eth0设置为DHCP 汽车eth0 iFace eth0 inet dhcp 静态/静态 #启动系统启动装置 #环回地址 自动登录 …