资讯专栏INFORMATION COLUMN

PHP图片处理之二维码加文字

justjavac / 1335人阅读

摘要:分析将链接生成二维码不难,直接即可解决。打开图片将生成的二维码图片按照路径打开,获取相关信息。销毁图片销毁生成的图片资源和生成的图片文件。

需求

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

分析

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

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

过程

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

打开图片

将 Qrcode 生成的二维码图片按照 路径 打开,获取相关信息。

宽度类型等信息可以用 getimagesize() 获取

打开图片:$image = imagecreatefrompng($file);

如果事先不知道原图片格式的话,可以采用下面方法:

$info = getimagesize($file); // 获取图片信息
$type = image_type_to_extension($info[2],false); // 获取图片扩展名
$fun  = "imagecreatefrom{$type}"; // 构建处理图片方法名-关键是这里
$image = $fun($file); // 调用方法处理

处理图片

将字体文件准备好,设置好字体的颜色,然后创建文字:

$font = ROOT_PATH."public/static/fonts/msyh.ttf"; // 字体文件
$color = imagecolorallocate($image,0,0,0); // 文字颜色
imagettftext($image, 20, 0, 80, 292, $color, $font, $code); // 创建文字

这里我直接写在了二维码图片的下边框空白处

输出图片

到这里对于原图片的处理基本就结束了。

使用 header() 和 imagepng() 方法输出最终图片:

header("Content-Type:image/png"); 
imagepng($image);

如果图片格式不确定,参照上面第一步中给出的例子处理,这里我没有保存到本地。

销毁图片

销毁生成的图片资源和Qrcode生成的图片文件。

header("Content-Type:image/png");
imagepng($image);
imagedestroy($image);if (is_file($file)) unlink($file);

效果

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

总结

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/30582.html

相关文章

  • PHP 图片文字合成

    摘要:查询用户信息已经合成的不再重复生成生成原始二维码图网络路径原始二维码图的绝对路径准备好的模板图片已经生成的原始二维码图二维码图片宽度二维码图片高度图片合成保存到路径字体类型显示的文字我是设置字体颜色合成头像 //查询用户信息 $client = $this->where(array(id => $client_id))->find(); $client_avatar =...

    sugarmo 评论0 收藏0
  • php图片文字图片水印实现代码(二种水印方法)

    摘要:有时上传图片时,需要给图片添加水印,水印一般为文字或图片水印,下面就来看看两种添加方法。拷贝并合并图像的一部分更多库函数用法,请查手册相关文章实现图片上传时添加文字和图片水印 有时上传图片时,需要给图片添加水印,水印一般为文字或图片logo水印,下面就来看看两种添加方法。 一、文字水印 文字水印就是在图片上加上文字,主要使用gd库的imagefttext方法,并且需要字体文件。效果图如...

    CoderStudy 评论0 收藏0
  • PHP里很好的使用ImageMagick---convert篇

    摘要:指定字体和颜色创建一个底图创建一个白色的底图,我们可以在上面绘制文字创建一个底图并且加上一些文字要生成的图片的路径可以在服务器端看到这里需要注意一下文字的绘制命令顺序,否则会出现没有生效的问题。 [原文链接]https://duanruilong.github.io...://duanruilong.github.io/blog/2018/09/18/%E5%9C%A8PHP%E9%8...

    DTeam 评论0 收藏0
  • PHP里很好的使用ImageMagick---convert篇

    摘要:指定字体和颜色创建一个底图创建一个白色的底图,我们可以在上面绘制文字创建一个底图并且加上一些文字要生成的图片的路径可以在服务器端看到这里需要注意一下文字的绘制命令顺序,否则会出现没有生效的问题。 [原文链接]https://duanruilong.github.io...://duanruilong.github.io/blog/2018/09/18/%E5%9C%A8PHP%E9%8...

    miguel.jiang 评论0 收藏0
  • 聊聊密那点事——PHP密最佳实践

    摘要:所谓对称加密,就是加密和解密使用同一秘钥,这也是这种加密算法最显著的缺点之一。非对称加密算法由于对称加密在通信加密领域的缺陷,年和提出了非对称加密的概念。非对称加密,其主要缺点之一就是慢,适合加密少量数据。 1. 加密的目的 加密不同于密码,加密是一个动作或者过程,其目的就是将一段明文信息(人类或机器可以直接读懂的信息)变为一段看上去没有任何意义的字符,必须通过事先约定的解密规则才能将...

    lcodecorex 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<