0

0

PHP怎样创建图片水印_为图片添加水印的方法【处理】

蓮花仙者

蓮花仙者

发布时间:2026-01-20 22:50:02

|

401人浏览过

|

来源于php中文网

原创

PHP添加图片水印主要有五种方法:一、GD库文字水印,支持TrueType字体与透明度控制;二、GD库图片水印,用PNG Logo叠加并保持Alpha通道;三、ImageMagick扩展,支持混合模式与批量处理;四、Canvas前端绘制后由PHP接收Base64数据保存;五、imagefilter滤镜模拟水印效果。

php怎样创建图片水印_为图片添加水印的方法【处理】

如果您需要在PHP中为图片添加水印,可以通过GD库或ImageMagick扩展实现图像叠加操作。以下是几种可行的处理方法:

一、使用GD库添加文字水印

GD库内置支持TrueType字体渲染,适合在图片上叠加半透明文字水印,控制位置、字体大小、颜色和透明度。

1、启用GD扩展并确认支持FreeType:检查phpinfo()中是否显示“FreeType Support => enabled”。

2、使用imagecreatefromjpeg(或png/gif对应函数)加载原图。

立即学习PHP免费学习笔记(深入)”;

3、使用imagecolorallocatealpha分配带透明度的文字颜色,例如设置alpha值为50(0为完全不透明,127为完全透明)。

4、调用imagettftext函数,在指定坐标处绘制文字,参数包括字体路径、字号、角度、x/y偏移、颜色、字体文件路径及水印文本。

5、使用imagejpeg(或imagepng)输出或保存处理后的图片,并释放资源(imagedestroy)。

二、使用GD库添加图片水印(Logo叠加)

该方法通过将一张PNG格式的Logo图像作为图层,以指定透明度和位置合成到目标图片右下角,适用于带Alpha通道的水印图。

1、用imagecreatefromjpeg加载背景图,用imagecreatefrompng加载PNG水印图(保留透明通道)。

2、获取两张图的宽高,计算水印放置坐标(如:$dst_x = $src_w - $logo_w - 10; $dst_y = $src_h - $logo_h - 10)。

3、调用imagecopyresampled函数,传入源图、目标图、目标x/y、源x/y、目标宽高、源宽高及缩放比例(若需等比缩放水印)。

4、确保水印图使用imagealphablending($logo, false)和imagesavealpha($logo, true)保持透明背景。

5、输出结果并销毁图像资源。

三、使用ImageMagick扩展添加水印

ImageMagick扩展提供更灵活的图像合成能力,支持多种混合模式、模糊边缘、旋转水印及批量处理,适合复杂水印需求。

1、确认已安装imagick扩展且ImageMagick二进制程序可用(exec('convert -version')可验证)。

2、实例化Imagick对象并读取原图:$img = new Imagick('source.jpg');。

北方供求商业完整版
北方供求商业完整版

专业的供求、二手、分类信息发布系统,功能介绍:HTML生成功能:发布信息自动生成相关列表,不必全部生成多功能图文编辑器:让你的信息更灵活多变,可添加图片水印强大的管理员权限分配:可管理某一个分类,或地区的信息强大JS功能:方便远程调用个人开店,企业黄页一步到位:每个会员都拥有自己的店铺,企业会员可加入到企业黄页集成支付宝在线支付v3.5 Build 0717更新修正了会员编辑信息的一处BUG,以前

下载

3、创建水印图对象:$watermark = new Imagick('logo.png');,调用$watermark->setImageOpacity(0.3)设置整体透明度。

4、使用compositeImage方法叠加,参数包括水印对象、合成方式(如Imagick::COMPOSITE_OVER)、x偏移、y偏移。

5、调用writeImage保存结果,或用getImageBlob获取二进制数据输出。

四、使用Canvas方式在前端预览后由PHP接收并保存水印图

该方法借助HTML5 Canvas完成客户端水印绘制,减轻服务器压力,适用于用户自定义文字/位置的交互场景。

1、在页面中用canvas>加载原图,使用drawImage绘制底图。

2、设置canvas上下文font、fillStyle、globalAlpha,调用fillText绘制文字水印。

3、调用canvas.toDataURL('image/jpeg', 0.9)生成Base64编码图片数据。

4、通过AJAX将Base64字符串发送至PHP接口,使用base64_decode解码并file_put_contents保存为文件。

5、注意过滤data:image/jpeg;base64,前缀,并校验解码后内容是否为合法JPEG头(0xFFD8FFE0或0xFFD8FFE1)。

五、使用PHP内置函数imagefilter叠加灰度/浮雕效果模拟水印感

当无需真实文字或Logo时,可通过图像滤镜增强版权标识感,适用于对性能敏感或GD受限的轻量环境。

1、加载原始图片后,复制一份副本用于处理:$overlay = imagecreatefromjpeg('src.jpg');。

2、对副本应用imagefilter($overlay, IMG_FILTER_GRAYSCALE)转为灰度。

3、再执行imagefilter($overlay, IMG_FILTER_EMBOSS)生成浮雕效果,增强纹理对比。

4、使用imagecopymerge将处理后的副本以30%不透明度叠加到底图指定区域。

5、输出合并结果,注意imagecopymerge最后一个参数为合并透明度(0–100),非alpha值。

相关专题

更多
php文件怎么打开
php文件怎么打开

打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

2705

2023.09.01

php怎么取出数组的前几个元素
php怎么取出数组的前几个元素

取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

1666

2023.10.11

php反序列化失败怎么办
php反序列化失败怎么办

php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

1527

2023.10.11

php怎么连接mssql数据库
php怎么连接mssql数据库

连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

974

2023.10.23

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

1444

2023.10.23

html怎么上传
html怎么上传

html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

1235

2023.11.03

PHP出现乱码怎么解决
PHP出现乱码怎么解决

PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1529

2023.11.09

php文件怎么在手机上打开
php文件怎么在手机上打开

php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1307

2023.11.13

Java JVM 原理与性能调优实战
Java JVM 原理与性能调优实战

本专题系统讲解 Java 虚拟机(JVM)的核心工作原理与性能调优方法,包括 JVM 内存结构、对象创建与回收流程、垃圾回收器(Serial、CMS、G1、ZGC)对比分析、常见内存泄漏与性能瓶颈排查,以及 JVM 参数调优与监控工具(jstat、jmap、jvisualvm)的实战使用。通过真实案例,帮助学习者掌握 Java 应用在生产环境中的性能分析与优化能力。

19

2026.01.20

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 8.9万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 8.7万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号