一、图片水印

  1. <?php
  2.  
  3. /* 覆盖水印 */
  4. $image = ImageCreateFromJPEG('memcached.jpg');
  5. $stamp = ImageCreateFromPNG('php.png');
  6.  
  7. $margin = ['right'=>10, 'bottom'=>10]; // 距离边界的偏移量
  8. $opacity = 50; // 不透明值
  9.  
  10. // @param 目标(图像)
  11. // @param 源(水印)
  12. // @param 水印 x 坐标:目标图像的宽度 - 水印的宽度 - 偏移量
  13. // @param 水印 y 坐标:目标图像的高度 - 水印的高度 - 偏移量
  14. // @param 后 4 个参数作为水印的大小
  15. // @param 不透明度
  16. ImageCopyMerge($image, $stamp, imagesx($image) - imagesx($stamp) - $margin['right'],
  17. imagesy($image) - imagesy($stamp) - $margin['bottom'],
  18. 0, 0, imagesx($stamp), imagesy($stamp), $opacity
  19. );
  20.  
  21. header('Content-type: image/png');
  22. ImageJpeg($image);
  23. ImageDestroy($image);
  24. ImageDestroy($stamp);

说明:

ImageCopyMerge() 函数允许将一个图像放置在另一个图像上面,它的最后一个参数用来设置不透明度(0 - 100 之间,越小水印越淡)

第 5、6、7、8 个参数表示水印的大小(0,0,ImageSX($stamp),ImageSY($stamp) 会复制整个水印图像)

为了避免在脚本中硬编码写入图像的大小,可以用 ImageSX() 和 ImageSY() 函数动态地计算图像大小

二、文字水印

  1. <?php
  2.  
  3. /* 覆盖水印 */
  4. $image = ImageCreateFromJPEG('memcached.jpg');
  5. $stamp = ImageCreateFromPNG('php.png');
  6.  
  7. $margin = ['right'=>10, 'bottom'=>10]; // 距离边界的偏移量
  8. $opacity = 50; // 不透明值
  9.  
  10. // 文字水印
  11. $w = 200;
  12. $h = 100;
  13. $stamp = ImageCreateTrueColor($w, $h);
  14. ImageFilledRectangle($stamp, 0, 0, $w - 1, $h - 1, 0xFFFFFF);
  15.  
  16. // 文本
  17. $color = 0x000000;
  18. ImageString($stamp, 4, 10, 10, 'I LOVE PHP', $color);
  19. ImageString($stamp, 4, 10, 28, 'I LOVE DEVELOPING', $color);
  20. ImageString($stamp, 4, 10, 46, 'I LOVE LIFE', $color);
  21.  
  22. // @param 目标(图像)
  23. // @param 源(水印)
  24. // @param 水印 x 坐标:目标图像的宽度 - 水印的宽度 - 偏移量
  25. // @param 水印 y 坐标:目标图像的高度 - 水印的高度 - 偏移量
  26. // @param 后 4 个参数作为水印的大小
  27. // @param 不透明度
  28. ImageCopyMerge($image, $stamp, imagesx($image) - imagesx($stamp) - $margin['right'],
  29. imagesy($image) - imagesy($stamp) - $margin['bottom'],
  30. 0, 0, imagesx($stamp), imagesy($stamp), $opacity
  31. );
  32.  
  33. header('Content-type: image/png');
  34. ImageJpeg($image);
  35. ImageDestroy($image);
  36. ImageDestroy($stamp);

  

参考:

<PHP Cookbook>3'rd

PHP 水印设置的更多相关文章

  1. 逆天通用水印支持Winform,WPF,Web,WP,Win10。支持位置选择(9个位置 ==》[X])

    常用技能:http://www.cnblogs.com/dunitian/p/4822808.html#skill 逆天博客:http://dnt.dkil.net 逆天通用水印扩展篇~新增剪贴板系列 ...

  2. 介绍 Visifire 常用属性的设置

    转载自http://www.cnblogs.com/xinyus/p/3422198.html 主要介绍 Visifire 常用属性的设置,用来生成不同样式的图例 设置Chart的属 //设置titl ...

  3. JAVA实用案例之水印开发

    写在最前面 上周零零碎碎花了一周的时间研究水印的开发,现在终于写了个入门级的Demo,做下笔记同时分享出来供大家参考. Demo是在我上次写的 JAVA实用案例之文件导入导出(POI方式) 框架基础上 ...

  4. JAVA实用案例之图片水印开发

    写在最前面 上周零零碎碎花了一周的时间研究水印的开发,现在终于写了个入门级的Demo,做下笔记同时分享出来供大家参考. Demo是在我上次写的 JAVA实用案例之文件导入导出(POI方式) 框架基础上 ...

  5. 织梦dedecms dede plus文件作用介绍及安全设置

    一.安装设置 1.默认的后台模块中心有很多模块. 这里除了"友情链接"模块其他都可以删掉.在后台可以先卸载再删除. 2.如果是一开始就不想要的话,安装版plus目录下进行如下操作. ...

  6. [原创]超强C#图片上传,加水印,自动生成缩略图源代码

    <%@ Page Language=“C#“ AutoEventWireup=“true“ %> <%@ Import Namespace=“System“ %> <%@ ...

  7. PDF文件添加二维码水印教程

    maven配置iText的jar,主要不是所有私服都有iText的jar,maven仓库没有的,可以去https://mvnrepository.com/artifact/com.itextpdf/i ...

  8. 使用Html5对图片加水印及多图合成

                                                                             转载请注明原地址:                   ...

  9. 如何在PDF文档上加水印

    当我们需要传输一些比较重要的文件时,往往会选择将文档转换为PDF文件,避免其他人复制.更改文档的内容. pdfFactory不仅可以为用户提供快速创建PDF的功能,同时还提供了添加水印的功能.有了水印 ...

随机推荐

  1. Android笔记:通知

    可以在活动里创建,也可以在广播接收器里创建,还可以在服务里创建. NotificationManager manager = (NotificationManager)getSystemService ...

  2. .Net中使用无闪刷新控件时提示框不显示

    今天做提示框的时候一直不显示,让我郁闷好久,晚上吃饭的时候问了同事一下,他给了一个思路, 他说可能是因为由于页面中的无闪刷新导致的结果:百度了一下真找到了解决方法 在页面中存在无闪刷新控件的时候提示框 ...

  3. SVN-功能介绍之切换

    当初新建项目IMyYa 提交到svn 目录下file:///H:/svn/truck/IMyYa 现在svn 目录版本库中调整为file:///H:/svn/truck/Win8/IMyYa 与之前不 ...

  4. Nginx反向代理的工作方式

    如图所示: 当客户端发来HTTP请求时,Nginx并不会立刻转发到上游服务器,而是先把用户的请求(包括HTTP包体)完整地接收到Nginx所在服务器的硬盘或者内存中,然后再向上游服务器发起连接,把缓存 ...

  5. 11g新特性-dba_users安全性的一些增强

    1.dba_user表的password(除了GLOBAL和EXTERNAL的密码)不再保存密码. 查询10g的dba_user表 SQL> select username,password f ...

  6. sysbench的安装与使用(with MySQL)

    sysbench是一款开源的多线程性能测试工具,可以执行CPU/内存/线程/IO/数据库等方面的性能测试. 项目主页: http://sysbench.sourceforge.net/ 安装文档htt ...

  7. 使用FP-Growth算法高效发现频繁项集【zz】

    FP树构造 FP Growth算法利用了巧妙的数据结构,大大降低了Aproir挖掘算法的代价,他不需要不断得生成候选项目队列和不断得扫描整个数据库进行比对.为了达到这样的效果,它采用了一种简洁的数据结 ...

  8. windows phone 摄像头得到图片是旋转90°

    我上个随笔讲到,windows phone 拍出来的photo如果直接使用是反转了90°的. 研究了很久..终于发现问题.其实..这是使用习惯问题... CameraCaptureUI 得到的phot ...

  9. 理解callback function in javascript

    以下内容主要摘自[1,2] (1)In javascript, functions are first-class objects, which means functions can be used ...

  10. Apache, Tomcat, JK Configuration Example

    Example of worker.properties: worker.list=myWorker,yourWorker worker.myWorker.port=7505 worker.myWor ...