PHP 修改图片颜色(生成彩色二维码)
最近在弄图片处理, 看网上在线生成的四色二维码挺有趣的。 自己弄了一个。
整体思路:
- 用
composer
的qrcode包生成一个黑白二维码。 - 使用
imagecolorat
获取当前像素的颜色 - 如果当前颜色是黑色, 就使用
imagesetpixel
填充彩色点 - 其中一个比较有意思的就是需要判断当前像素点处于哪一块区域
/**
* 获取当前所在像素点的位置
* $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
上面, 支持composer
安装,又需要的朋友可以看一下。顺便来个star
最后祝大家每一天都是快乐*\(^_^)/*
github地址:https://github.com/WaitMoonMan/qrcodeplus
本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由 Summer
于 7年前 加精
6 :+1:
@BradStev 谢谢夸奖 :smile:
:+1:
:thumbsup:
我用Lua+ffi+C写了一个更简单地生成二维码https://github.com/dyike/ngx_qrcode
@ityike :+1: 我这个二维码是依赖于第三方包
qrcode
生成的,@施国鹏 恩,我实现的比较简单,C可以生成图片,Lua调用C。
按照git里的步骤:composer require davidnineroc/qrcodeplus
后不能使用,有没有人用过这个组件? 楼主能否详细说明?
@gxcnvip 请截图报错代码
compoer:

PS:
laravel 5.6
@gxcnvip 下载的时候
composer require davidnineroc/qrcodeplus dev-master
,因为换了个名字,我的包忘记改命名空间了。我去更新一下jquery生成二维码www.yujianni.top/news/comp_artinfo...