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的功能,同时还提供了添加水印的功能.有了水印 ...
随机推荐
- IIs管理服务一直启动失败的原因之一
首先eventlog里面的日志: 万维网发布服务(WWW 服务)没有为站点 1 注册 URL 前缀 https://*:8172/.该站点已被禁用.数据字段包含错误号. IISWMSVC_STARTU ...
- 四种浏览器对 clientHeight、offsetHeight、scrollHeight、clientWidth、offsetWidth 和 scrollWidth 的解释差异
网页可见区域宽:document.body.clientWidth 网页可见区域高:document.body.clientHeight 网页可见区域宽:document.body.offsetWid ...
- 解析XML文档
<html> <body><h1>W3School.com.cn Internal Note</h1><p><b>To:< ...
- 前端开发必备!Emmet语法
使用方法 emmet的使用方法也非常简单,以sublime text为例,直接在编辑器中输入HTML或CSS的代码的缩写,然后按tab键就可以拓展为完整的代码片段.(如果与已有的快捷键有冲突的话,可以 ...
- js框架设计1.3数组化
这一节从作者哪里学来了[].slice.call([],0,1);这个方法第一个参数可是是字符串可以是数组或其他,第2个是数组截取位置的开始位置,第3个是终止位置. 作者说这个方法不兼容旧版本ie的, ...
- ABAP 合并单元格自建函数
FORM frm_merge_cells USING sor_cell tar_cell. CALL METHOD OF excel 'Range' = range EXPORTING ...
- .NET LINQ标准查询运算符
标准查询运算符概述 “标准查询运算符”是组成语言集成查询 (LINQ) 模式的方法. 大多数这些方法都在序列上运行,其中的序列是一个对象,其类型实现了 IEnumerable<T> ...
- 算法系列:FFT 003
转载自https://zhuanlan.zhihu.com/p/19763358 作者:Heinrich 链接:https://zhuanlan.zhihu.com/p/19763358 来源:知乎 ...
- Swap in C C++ C# Java
写一个函数交换两个变量的值. C: 错误的实现: void swap(int i, int j) { int t = i; i = j; j = t; } 因为C语言的函数参数是以值来传递的(pass ...
- java基础(三)
1.枚举类,使用enum定义的枚举类默认继承java.lang.Enum,而不是Object类.枚举类的所有实例必须在枚举类中显示列出,否则这个枚举类永远都不能产生实例.相关内容较多,需要后续继续跟进 ...