博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP图片处理之二维码加文字
阅读量:7109 次
发布时间:2019-06-28

本文共 1103 字,大约阅读时间需要 3 分钟。

需求

客户商品管理系统,每个商品需要生成一个二维码以便手机直接扫描查看商品信息,而对应的,二维码下方必须有一串唯一码,它们存在于一张图片上,以方便用户另存打印贴纸(不相干细节省略)。

分析

将链接生成二维码不难,直接qrcode即可解决。

剩下的对应唯一码,例如:WY998823, 按特定算法生成码后,需要与二维码图片重新合成为一张图片,PHP中的图片处理,不用说,首当其冲GD库。

过程

由于代码涉及较多,就不直接贴出来了。此处简述用到的方法及流程,供大家参考。

  1. 打开图片

    将 Qrcode 生成的二维码图片按照 路径 打开,获取相关信息。宽度类型等信息可以用 getimagesize() 获取打开图片:$image = imagecreatefrompng($file);如果事先不知道原图片格式的话,可以采用下面方法:$info = getimagesize($file); // 获取图片信息$type = image_type_to_extension($info[2],false); // 获取图片扩展名$fun  = "imagecreatefrom{$type}"; // 构建处理图片方法名-关键是这里$image = $fun($file); // 调用方法处理
  2. 处理图片

    将字体文件准备好,设置好字体的颜色,然后创建文字:$font = ROOT_PATH.'public/static/fonts/msyh.ttf'; // 字体文件$color = imagecolorallocate($image,0,0,0); // 文字颜色imagettftext($image, 20, 0, 80, 292, $color, $font, $code); // 创建文字这里我直接写在了二维码图片的下边框空白处
  3. 输出图片

    到这里对于原图片的处理基本就结束了。使用 header() 和 imagepng() 方法输出最终图片:header("Content-Type:image/png"); imagepng($image);如果图片格式不确定,参照上面第一步中给出的例子处理,这里我没有保存到本地。
  4. 销毁图片

    销毁生成的图片资源和Qrcode生成的图片文件。header('Content-Type:image/png');imagepng($image);imagedestroy($image);if (is_file($file)) unlink($file);

效果

生成后效果如图(信息考虑,二维码图像已打码)

clipboard.png

总结

图像能否处理和处理得好,就看如何使用GD库了。

转载地址:http://mmvhl.baihongyu.com/

你可能感兴趣的文章
SpringBoot之第一个应用HelloWorld
查看>>
Thinkphp 数据的修改及删除操作
查看>>
hbase命令
查看>>
Java序列化和反序列化
查看>>
acm algorithm practice Dec. 27 MST
查看>>
LINQ系列:Linq to Object投影操作符
查看>>
微信公众号的文本回复(文本回复接口)
查看>>
CentOS7.X怎样更新yum源
查看>>
color theme
查看>>
vue 监听组件被重新渲染后的事件
查看>>
[Aaronyang] 写给自己的WPF4.5 笔记9[复杂数据处理三步曲,数据展示ListView泪奔2/3]...
查看>>
第十章 集成ISIS协议--10.1
查看>>
六、C# 派生
查看>>
SSH整合错误三连
查看>>
如何把彩色网页快速变为灰色网页?
查看>>
[渣译文] 使用 MVC 5 的 EF6 Code First 入门 系列:实现基本的CRUD功能
查看>>
NO24 第三关--企业面试题
查看>>
《Java技术》预备作业02 计科1502李宇蒙
查看>>
rnn lstm
查看>>
升级Chrome后无法打开网页
查看>>