改了下 Python QR Code 艺术二维码生成的项目 - V2EX
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 6963 次点击
    这是一个创建于 2757 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近打算做一个和二维码相关的项目,搜了一下相关资料,发现了一个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:1 +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     Solana     4813 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 05:41 PVG 13:41 LAX 21:41 JFK 00:41
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86