V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
tiaod
V2EX  ›  Python

改了下 Python QR Code 艺术二维码生成的项目

  •  
  •   tiaod · 2018-06-12 23:24:00 +08:00 · 5937 次点击
    这是一个创建于 2135 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近打算做一个和二维码相关的项目,搜了一下相关资料,发现了一个Python 生成艺术二维码的项目,挺有意思的,顺手就改了下,把它做成 http 服务。

    项目原作者是 @sylnsfar,这里是他两年前发的主题。

    改的过程中发现,原项目生成的二维码背景图清晰度不够,能明显看到马赛克:

    所以又研究了下作者提到的Halftone QR Code,发现其实可以直接生成一个透明背景的二维码,把背景的填充的工作交给使用者。于是动手改起来,把项目改成了一个生成透明背景二维码的 http 服务器,发现效果挺不错的。

    实际效果测试

    生成的透明背景二维码:

    自行使用 PS 叠加背景图,支持任意高清图,无马赛克:

    甚至制作海报:

    因为原项目使用 GPLv3 协议,所以我修改之后的项目也使用 GPLv3 进行开源: https://github.com/tiaod/qrcode-art-server

    第 1 条附言  ·  2018-06-13 08:45:31 +08:00
    移除了多余的边框,现在看起来更简洁了:


    另外可以自行调节二维码的透明度,让海报看起来更自然:
    第 2 条附言  ·  2018-06-13 09:56:27 +08:00
    继续放一些更新之后的效果:


    第 3 条附言  ·  2018-06-13 15:56:53 +08:00

    2018年6月13日15:50:36更新:已发布到docker hub,想要测试的同学可以直接运行:

    $ docker run -p 5000:5000 tiaod/qrcode-art-server
    

    顺便附上Github地址:https://github.com/tiaod/qrcode-art-server

    后续更新会放在Github上。

    16 条回复    2018-06-14 10:02:35 +08:00
    wonpain
        1
    wonpain  
       2018-06-13 00:00:16 +08:00 via Android
    赞一个
    7sDream
        2
    7sDream  
       2018-06-13 03:24:07 +08:00 via Android   ❤️ 1
    可以瞅一眼我的 pyqart,很早就支持了。
    不过没有时间做这个项目类似的支持动图和透明过滤功能。
    cgwh
        3
    cgwh  
       2018-06-13 06:02:23 +08:00 via Android
    学习了,赞!
    ebony0319
        4
    ebony0319  
       2018-06-13 07:49:16 +08:00 via Android
    赞。
    ericgui
        5
    ericgui  
       2018-06-13 07:54:41 +08:00
    牛逼,这个不错
    tiaod
        6
    tiaod  
    OP
       2018-06-13 08:15:04 +08:00
    @7sDream 我也测试过你的 pyqart,QArt 部分还可以,但是测试 Halftone 时发现马眼周围有些奇怪的边界,没法填充完整
    ![]( )
    ![]( )
    所以最终还是用了 @sylnsfar 写的库,比较好改
    yuyongji1987
        7
    yuyongji1987  
       2018-06-13 08:28:30 +08:00 via iPhone
    支持中文吗
    tiaod
        8
    tiaod  
    OP
       2018-06-13 08:41:28 +08:00
    @yuyongji1987 基于 sylnsfar/qrcode 开发的,原版不支持中文,所以不支持。我有空重写一下,不基于他的来做就可以了
    cqxxxxxxx
        9
    cqxxxxxxx  
       2018-06-13 08:42:05 +08:00 via Android
    有没有小程序码的美化库或者方案啊。
    brotherlegend
        10
    brotherlegend  
       2018-06-13 08:43:47 +08:00 via Android
    赞 666
    tofishes
        11
    tofishes  
       2018-06-13 09:43:04 +08:00
    漂亮,star
    xiangyuecn
        12
    xiangyuecn  
       2018-06-13 09:48:31 +08:00
    已 star
    为毛 fork 比 star 多 20 多倍 (滑稽
    tiaod
        13
    tiaod  
    OP
       2018-06-13 09:58:20 +08:00
    @cqxxxxxxx 没有。但是小程序码也有普通二维码的形式,可以用普通二维码来转换
    tiaod
        14
    tiaod  
    OP
       2018-06-13 09:59:10 +08:00
    @xiangyuecn 因为我也是 fork 原项目的,所以显示的是 fork 数量,哈哈
    yuyongji1987
        15
    yuyongji1987  
       2018-06-14 08:00:55 +08:00 via iPhone
    @tiaod 原来如此
    7sDream
        16
    7sDream  
       2018-06-14 10:02:35 +08:00 via Android
    @tiaod

    这个奇怪的问题我抽空看一下,应该根据 spec 这部分并不是数据区。

    但是有点久了记不太清了。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1099 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 18:35 · PVG 02:35 · LAX 11:35 · JFK 14:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.