PHP 水印设置
一、图片水印
<?php /* 覆盖水印 */
$image = ImageCreateFromJPEG('memcached.jpg');
$stamp = ImageCreateFromPNG('php.png'); $margin = ['right'=>10, 'bottom'=>10]; // 距离边界的偏移量
$opacity = 50; // 不透明值 // @param 目标(图像)
// @param 源(水印)
// @param 水印 x 坐标:目标图像的宽度 - 水印的宽度 - 偏移量
// @param 水印 y 坐标:目标图像的高度 - 水印的高度 - 偏移量
// @param 后 4 个参数作为水印的大小
// @param 不透明度
ImageCopyMerge($image, $stamp, imagesx($image) - imagesx($stamp) - $margin['right'],
imagesy($image) - imagesy($stamp) - $margin['bottom'],
0, 0, imagesx($stamp), imagesy($stamp), $opacity
); header('Content-type: image/png');
ImageJpeg($image);
ImageDestroy($image);
ImageDestroy($stamp);
说明:
ImageCopyMerge() 函数允许将一个图像放置在另一个图像上面,它的最后一个参数用来设置不透明度(0 - 100 之间,越小水印越淡)
第 5、6、7、8 个参数表示水印的大小(0,0,ImageSX($stamp),ImageSY($stamp) 会复制整个水印图像)
为了避免在脚本中硬编码写入图像的大小,可以用 ImageSX() 和 ImageSY() 函数动态地计算图像大小
二、文字水印
<?php /* 覆盖水印 */
$image = ImageCreateFromJPEG('memcached.jpg');
$stamp = ImageCreateFromPNG('php.png'); $margin = ['right'=>10, 'bottom'=>10]; // 距离边界的偏移量
$opacity = 50; // 不透明值 // 文字水印
$w = 200;
$h = 100;
$stamp = ImageCreateTrueColor($w, $h);
ImageFilledRectangle($stamp, 0, 0, $w - 1, $h - 1, 0xFFFFFF); // 文本
$color = 0x000000;
ImageString($stamp, 4, 10, 10, 'I LOVE PHP', $color);
ImageString($stamp, 4, 10, 28, 'I LOVE DEVELOPING', $color);
ImageString($stamp, 4, 10, 46, 'I LOVE LIFE', $color); // @param 目标(图像)
// @param 源(水印)
// @param 水印 x 坐标:目标图像的宽度 - 水印的宽度 - 偏移量
// @param 水印 y 坐标:目标图像的高度 - 水印的高度 - 偏移量
// @param 后 4 个参数作为水印的大小
// @param 不透明度
ImageCopyMerge($image, $stamp, imagesx($image) - imagesx($stamp) - $margin['right'],
imagesy($image) - imagesy($stamp) - $margin['bottom'],
0, 0, imagesx($stamp), imagesy($stamp), $opacity
); header('Content-type: image/png');
ImageJpeg($image);
ImageDestroy($image);
ImageDestroy($stamp);
参考:
<PHP Cookbook>3'rd
PHP 水印设置的更多相关文章
- 逆天通用水印支持Winform,WPF,Web,WP,Win10。支持位置选择(9个位置 ==》[X])
常用技能:http://www.cnblogs.com/dunitian/p/4822808.html#skill 逆天博客:http://dnt.dkil.net 逆天通用水印扩展篇~新增剪贴板系列 ...
- 介绍 Visifire 常用属性的设置
转载自http://www.cnblogs.com/xinyus/p/3422198.html 主要介绍 Visifire 常用属性的设置,用来生成不同样式的图例 设置Chart的属 //设置titl ...
- JAVA实用案例之水印开发
写在最前面 上周零零碎碎花了一周的时间研究水印的开发,现在终于写了个入门级的Demo,做下笔记同时分享出来供大家参考. Demo是在我上次写的 JAVA实用案例之文件导入导出(POI方式) 框架基础上 ...
- JAVA实用案例之图片水印开发
写在最前面 上周零零碎碎花了一周的时间研究水印的开发,现在终于写了个入门级的Demo,做下笔记同时分享出来供大家参考. Demo是在我上次写的 JAVA实用案例之文件导入导出(POI方式) 框架基础上 ...
- 织梦dedecms dede plus文件作用介绍及安全设置
一.安装设置 1.默认的后台模块中心有很多模块. 这里除了"友情链接"模块其他都可以删掉.在后台可以先卸载再删除. 2.如果是一开始就不想要的话,安装版plus目录下进行如下操作. ...
- [原创]超强C#图片上传,加水印,自动生成缩略图源代码
<%@ Page Language=“C#“ AutoEventWireup=“true“ %> <%@ Import Namespace=“System“ %> <%@ ...
- PDF文件添加二维码水印教程
maven配置iText的jar,主要不是所有私服都有iText的jar,maven仓库没有的,可以去https://mvnrepository.com/artifact/com.itextpdf/i ...
- 使用Html5对图片加水印及多图合成
转载请注明原地址: ...
- 如何在PDF文档上加水印
当我们需要传输一些比较重要的文件时,往往会选择将文档转换为PDF文件,避免其他人复制.更改文档的内容. pdfFactory不仅可以为用户提供快速创建PDF的功能,同时还提供了添加水印的功能.有了水印 ...
随机推荐
- SQL Server 阻止了对组件 'Ole Automation Procedures' 的 过程'sys.sp_OACreate' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configur
参见:http://msdn.microsoft.com/zh-cn/library/ms191188(SQL.105).aspx Ole Automation Procedures 选项 [本主题为 ...
- 【MySQL】常规操作
2016.4.10 1.MySQL查看系统当前默认自增列种子值和步长值(全局) 1 show GLOBAL VARIABLES like 'auto_incre%'; 2.MySQL查看具体某一张表的 ...
- connect 链接失败: 查找不到 signal
提示错误是: signal_index < 0 ;; ---- 故 connect返回false; 消除 connect 信号 ...
- 解决selenium2在IE11上出错的问题,如Unable to get browser
官方解决方案: https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver#required-configuration Re ...
- mysql sql优化实例
mysql sql优化实例 优化前: pt-query-degist分析结果: # Query 3: 0.00 QPS, 0.00x concurrency, ID 0xDC6E62FA021C85B ...
- 去哪儿网输入框三种输入方式(selenium webdriver 干货)
在机票预定的页面,输入出发城市和到达城市输入框的时候, 发现直接使用sendkeys不好使, 大部分情况出现输入某城市后没有输入进去, 经过几天的研究,发现可以采取三种方式: 1. 先点击输入框,待弹 ...
- Java中的Serializable接口transient关键字,及字节、字符、对象IO
1.什么是序列化和反序列化Serialization是一种将对象转为为字节流的过程:deserialization是将字节流恢复为对象的过程. 2.什么情况下需要序列化a)当你想把的内存中的对象保存到 ...
- layer使用方法
type - 基本层类型 类型:Number,默认:0 layer提供了5种层类型.可传入的值有:0(信息框,默认)1(页面层)2(iframe层)3(加载层)4(tips层). 若你采用layer. ...
- (2016弱校联盟十一专场10.3) A.Best Matched Pair
题目链接 #include<cstdio> #include<cstring> #include<algorithm> #include<stack> ...
- seajs hello world
http://localhost/seajs/index.html <!doctype html> <head> <title>Hello Seajs</ti ...