首页 » Web前端 » phpgdimagecopy技巧_运用GD库给图片添加水印

phpgdimagecopy技巧_运用GD库给图片添加水印

duote123 2024-11-26 0

扫一扫用手机浏览

文章目录 [+]

PHP供应的GD库是专门用来处理图像的,在利用之前首先要启用GD库,打开php.ini文件,如下图所示:

去掉前面的’;’号,启用GD库。

phpgdimagecopy技巧_运用GD库给图片添加水印

其余,水印在目标图片上的位置跟坐标值有关,这里的坐标差异于数学中的坐标体系,图片的左上角为原点,向下为y轴正方向,向右为x轴正方向,如下所示:

phpgdimagecopy技巧_运用GD库给图片添加水印
(图片来自网络侵删)

给图片添加水印实际上是将水印图片与目标图合并成一张图片,步骤如下:

1、准备水印图片( logo.png )和要添加水印的目标图片( tim.jpg );

2、从字符串中的图像流新建一图像

3、获打水印图片的宽高

4、将水印图片与目标图片合并成一张图片,这里利用imagecopy:

这里阐明一下imagecopy函数中8个参数的含义:

$img:为目标文件,即要添加水印的图片;

$logo:为水印图片;

10:目标图片的x轴坐标;

50:目标图片的y轴坐标;

0:从水印图片的x轴坐标0开始;

0:从水印图片的y轴坐标0开始;

$logo_x:宽度为水印图片本身的宽度;

$logo_y:高度为水印图片本身的高度;

连起来的含义为:将 $logo 图像中坐标从 0,0 开始,宽度为 $logo_x,高度为 $logo_y 的一部分拷贝到 $img图像中坐标为 10 和 50 的位置上。

5、输出文件:

如下所示:

可见,logo已经被添加在目标图片上。

6、销毁图像开释内存

但是这里存在问题:

1、目标图片的格式不愿定,即我们须要动态获取图片的格式;

2、水印图片不是透明的,须要使水印透明;

办理方法:

1、对付第一个问题,我们可以利用getimagesize返回值中的图像类型标记来确定图像的格式:

Getimagesize函数返回一个具有四个单元的数组:

① 索引 0 包含图像宽度的像素值;

② 索引 1 包含图像高度的像素值;

③ 索引 2 是图像类型的标记:1 = GIF,2 = JPG,3 = PNG,4 = SWF,5 = PSD,6 = BMP,7 = TIFF(intel byte order),8 = TIFF(motorola byte order),9 = JPC,10 = JP2,11 = JPX,12 = JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM;

④ 索引 3 是文本字符串:内容为“width=\公众yyy\"大众 height=\"大众xxx\"大众”,可直接用于普通 HTML 文件中 IMG 标记中的 height/width 文本字符串。

在获取到图像的类型标记后,可以利用image_type_to_extension函数进一步获取图像的后缀,如下:

修正输出图片代码如下:

2、对付第二个问题则比较大略,在合并两个图像的时候,利用imagecopymerge函数,该函数比imagecopy函数多一个参数,可对真彩色图像实现了 alpha 透明,如下:

末了一个值60即透明度,取值范围0-100,0为完备透明,100为不透明。

附上完全的代码:

以上仅仅是供应一种思路,实际运用的时候,须要进一步拓展;喜好的朋友,可以收藏或关注,感激大家。

标签:

相关文章

房山第一探寻历史文化名区的魅力与发展

房山区,位于北京市西南部,历史悠久,文化底蕴深厚。作为北京市的一个重要组成部分,房山区的发展始终与首都的发展紧密相连。房山区积极推...

Web前端 2025-02-18 阅读1 评论0

手机话费开钻代码数字时代的便捷生活

我们的生活越来越离不开手机。手机话费作为手机使用过程中的重要组成部分,其充值方式也在不断创新。手机话费开钻代码应运而生,为用户提供...

Web前端 2025-02-18 阅读1 评论0

探寻专业奥秘如何查询自己专业的代码

计算机科学已成为当今社会不可或缺的一部分。掌握一门专业代码对于个人发展具有重要意义。面对繁杂的学科体系,如何查询自己专业的代码成为...

Web前端 2025-02-18 阅读0 评论0