首页 » 网站建设 » phpgd归并图片技巧_运用GD库给图片添加水印

phpgd归并图片技巧_运用GD库给图片添加水印

访客 2024-11-06 0

扫一扫用手机浏览

文章目录 [+]

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

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

phpgd归并图片技巧_运用GD库给图片添加水印

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

phpgd归并图片技巧_运用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为不透明。

附上完全的代码:

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

标签:

相关文章

微信第三方登录便捷与安全的完美融合

社交平台已成为人们日常生活中不可或缺的一部分。微信作为我国最受欢迎的社交软件之一,拥有庞大的用户群体。为了方便用户在不同平台间切换...

网站建设 2025-02-18 阅读1 评论0

广东高速代码表解码高速公路管理智慧

高速公路作为国家交通动脉,连接着城市与城市,承载着巨大的物流和人流。广东作为我国经济大省,高速公路网络密布,交通流量巨大。为了更好...

网站建设 2025-02-18 阅读1 评论0