PHP 修改图片颜色(生成彩色二维码)

最近在弄图片处理, 看网上在线生成的四色二维码挺有趣的。 自己弄了一个。

整体思路:

  1. composerqrcode包生成一个黑白二维码。
  2. 使用imagecolorat获取当前像素的颜色
  3. 如果当前颜色是黑色, 就使用imagesetpixel填充彩色点
  4. 其中一个比较有意思的就是需要判断当前像素点处于哪一块区域
/**
* 获取当前所在像素点的位置
* $x, $y 是当前像素位置,
* $block 是二维码有多少个色块,比如 4 个, 9个
*/
function getLocationIndex($x, $y, $block)
{
    $x_index = (int) floor($x / ($img_width / $block));
    $y_index = (int) floor($y / ($img_height / $block));
    // 接下来的这个 $index 就是当前像素点算出来处于第几个色块
    $index = $x_index + (2 * $y_index);

    return $index;
}

效果图:


四色二维码
九色二维码
图片二维码
github


然后我进行了封装,代码也放到了Github上面, 支持composer安装,又需要的朋友可以看一下。顺便来个star
最后祝大家每一天都是快乐*\(^_^)/*
github地址:https://github.com/WaitMoonMan/qrcodeplus

本作品采用《CC 协议》,转载必须注明作者和本文链接
当神不再是我们的信仰,那么信仰自己吧,努力让自己变好,不辜负自己的信仰!
本帖由 Summer 于 7年前 加精
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 12

@BradStev 谢谢夸奖 :smile:

7年前 评论

我用Lua+ffi+C写了一个更简单地生成二维码https://github.com/dyike/ngx_qrcode

7年前 评论

@ityike :+1: 我这个二维码是依赖于第三方包qrcode生成的,

7年前 评论

@施国鹏 恩,我实现的比较简单,C可以生成图片,Lua调用C。

7年前 评论

按照git里的步骤:composer require davidnineroc/qrcodeplus
后不能使用,有没有人用过这个组件? 楼主能否详细说明?

6年前 评论

@gxcnvip 请截图报错代码

6年前 评论

file

file

compoer:
file

PS:
laravel 5.6

6年前 评论

@gxcnvip 下载的时候 composer require davidnineroc/qrcodeplus dev-master,因为换了个名字,我的包忘记改命名空间了。我去更新一下

6年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
未填写
文章
42
粉丝
158
喜欢
713
收藏
347
排名:30
访问:22.2 万
私信
所有博文
社区赞助商