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

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

总体思路:github

  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;
}复制代码

效果图: bash


四色二维码
四色二维码

九色二维码
九色二维码

图片二维码
图片二维码

github
github


而后我进行了封装,代码也放到了Github上面, 支持composer安装,又须要的朋友能够看一下。顺便来个star
最后祝你们每一天都是快乐*\(^_^)/*
github地址:github.com/WaitMoonMan…composer

相关文章
相关标签/搜索