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

2017-10-31 09:19:40 +08:00
 waitmoonman

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

整体思路:

  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上面, 支持composer安装,又需要的朋友可以看一下。顺便来个star 最后祝大家每一天都是快乐*\(^_^)/* github 地址:https://github.com/WaitMoonMan/qrcodeplus

3081 次点击
所在节点    PHP
2 条回复
alber1986
2017-10-31 10:29:46 +08:00
我用的是这个 php 生成的二维码,http://www.sucaihuo.com/php/247.html
不知道能不能改成彩色的
waitmoonman
2017-10-31 12:05:56 +08:00
@alber1986 你的 php 版本是多少的?如果支持 composer 的话,是完全可以的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/402133

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX