V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
waitmoonman
V2EX  ›  PHP

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

  •  
  •   waitmoonman · 2017-10-31 09:19:40 +08:00 · 3052 次点击
    这是一个创建于 2340 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    整体思路:

    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

    2 条回复    2017-10-31 12:05:56 +08:00
    alber1986
        1
    alber1986  
       2017-10-31 10:29:46 +08:00
    我用的是这个 php 生成的二维码,http://www.sucaihuo.com/php/247.html
    不知道能不能改成彩色的
    waitmoonman
        2
    waitmoonman  
    OP
       2017-10-31 12:05:56 +08:00
    @alber1986 你的 php 版本是多少的?如果支持 composer 的话,是完全可以的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1591 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 16:57 · PVG 00:57 · LAX 09:57 · JFK 12:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.