300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > php 打水印 PHP 给图片制作水印的方法

php 打水印 PHP 给图片制作水印的方法

时间:2023-01-21 09:37:26

相关推荐

php 打水印 PHP 给图片制作水印的方法

我们经常能在图片上看到一些水印,一般分为图片、文字或者是两种一起的结合。那为什么要加水印呢?目的是为了防止别人盗图、造假或者标注出处等,保护图片原作者的著作权或是劳动成果。那么给图片加水印就非常有必要了。

怎么用PHP实现给图片加水印呢?

先来看看效果

使用GD库

使用GD库来实现效果

图像处理和 GD - 手册

正所谓授人以鱼不如授人以渔,光贴代码不讲实现过程的,都是耍流氓。所以下面我会写功能的实现过程、过程所需要用到的函数。

内容基本都是干货,需要用到的时候可以方便查阅资料

关键函数

下面是php实现两种水印方式的关键函数:

imagettftext 用 TrueType 字体向图像写入文本

两种水印的实现方式

图片水印

准备两张图片

原图

水印图

实现过程

在php中加载这两张图片,得到一个图像资源数据类型。

根据不同的图片格式,使用对应函数

它们甚至可以加载一张来自网上的图片

可能你会需要将水印图进行缩小或放大(如果不需要,可以跳过这一步)

等比例缩放

计算缩放比例,根据想要缩放到的值(比如一张宽度是500px的图片,想缩小成50px)

计算缩放之后的宽高

创建一个新的图像资源(新图像的宽高等于缩放之后的宽高)

imagecreatetruecolor 新建一个真彩色图像

拷贝部分图像并调整大小

imagecopyresized 拷贝部分图像并调整大小

参数说明(为了方便理解,我对参数进行了语义化)

imagecopyresized(目标图像资源, 原图资源, 粘到目标图像的起始水平坐标, 粘到目标图像的起始垂直坐标, 拷贝原图的起始水平坐标, 拷贝原图的起始垂直坐标, 最终想要的宽度, 最终想要的高度, 原图的宽度, 原图的高度);

使用imagecopymerge函数,拷贝水印图并合并到原图中。

简单分析形参都有哪些(为了方便理解,我对参数进行了语义化)

imagecopymerge(原图资源, 水印图资源, 水印水平坐标, 水印垂直坐标, 拷贝水印图的起始水平坐标, 拷贝水印图的起始垂直坐标, 要拷贝的宽度, 要拷贝的高度, 水印透明度);

水印透明度:透明度范围是0-100

输出图像

函数关键字image+图片格式 更多查看官方手册

imagejpeg 输出图象到浏览器或文件。

imagepng

imagegif

imagewbmp

...

如果要输出到浏览器中,需要设置content-type头部

header - 手册 发送原生 HTTP 头

文字水印

简单分析形参都有哪些(为了方便理解,我对参数进行了语义化)

imagettftext(图像资源, 文字尺寸, 文字角度, 文字水平坐标, 文字垂直坐标, 文字颜色, 字体, 文本文字)

文字尺寸

GD库版本是1时,单位是像素(px),版本是2时,单位是点/磅(pt)

px,pt,em换算表

文字水平垂直基点位置

字符的左下角为基本点

文字颜色

字体

字体的绝对路径

其他参考

如果这对你有帮助,或者能帮你节省一些时间,不如,点个赞吧~

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。