又撸了个可以个性化 QR 码的小工具 - V2EX
爱意满满的作品展示区。
chinuno

又撸了个可以个性化 QR 码的小工具

  •  5
     
  •   chinuno Mar 12, 2016 6900 views
    This topic created in 3713 days ago, the information mentioned may be changed or developed.

    之前看到/t/259045这个主题后决定自己用 python 撸一个出来。
    先给个成品预览

    实现方式跟之前这个不一样,另外添加了彩色模式,可以修改黑色色块的颜色。不过颜色没设好的话不好刷出来。
    gayhub:https://github.com/chinuno-usami/CuteR
    虽然实现方式没什么技术含量,只是图片拼接而已,
    如果你觉得这个东西有点意思的话请加个星星,
    如果有什么改进的建议可以在 issue 区中反馈。

    35 replies    2016-08-19 13:18:58 +08:00
    mikii
        1
    mikii  
       Mar 12, 2016
    b( ̄ ̄)d
    Strikeactor
        2
    Strikeactor  
       Mar 12, 2016
    彩色的
    这个月的膝盖就决定给你了
    DennyDai
        3
    DennyDai  
       Mar 12, 2016
    python CuteR.py -C -r 0 100 50 3-0.png https://*******

    Traceback (most recent call last):
    File "CuteR.py", line 132, in <module>
    produce(txt,img,ver,ec,bri, cont ,color = colr,rgb=rgb).save(output)
    File "CuteR.py", line 51, in produce
    img_img = img_img.resize(((img_qr.size[0]-24)*(img_img.size[0]/img_img.size[1])),img_qr.size[1]-24))
    File "/usr/local/lib/python2.7/dist-packages/PIL/Image.py", line 1524, in resize
    raise ValueError("unknown resampling filter")
    ValueError: unknown resampling filter
    chendeshen
        4
    chendeshen  
       Mar 12, 2016
    非常不错
    chinuno
        5
    chinuno  
    OP
       Mar 12, 2016
    @DennyDai fixed.这个问题在发布前就发现了,提交到 github 的时候拷错文件了。。。
    mikii
        6
    mikii  
       Mar 12, 2016
    mikii
        7
    mikii  
       Mar 12, 2016
    Traceback (most recent call last):
    File "CuteR.py", line 136, in <module>
    produce(txt,img,ver,ec,bri, cont ,color = colr,rgb=rgb).save(output)
    NameError: name 'rgb' is not defined
    DennyDai
        8
    DennyDai  
       Mar 12, 2016
    python CuteR.py 3-0.png https://*******
    Traceback (most recent call last):
    File "CuteR.py", line 136, in <module>
    produce(txt,img,ver,ec,bri, cont ,color = colr,rgb=rgb).save(output)
    NameError: name 'rgb' is not defined

    和楼上一样,不设置 rgb 就不行- -
    ifaii
        9
    ifaii  
       Mar 12, 2016
    这个不错
    mikii
        10
    mikii  
       Mar 12, 2016
    @DennyDai 哈哈,怎么玩呀,为了装个 x 安装了好几个东西,还没搞出来~
    DennyDai
        11
    DennyDai  
       Mar 12, 2016
    @mikii 就两个。。。 pip install pillow qrcode
    liuhaotian
        12
    liuhaotian  
       Mar 12, 2016
    $ python qrcode.py -C -r 0 100 50 logo.jpg http://url
    Traceback (most recent call last):
    File "qrcode.py", line 6, in <module>
    import qrcode
    File "qrcode.py", line 24, in <module>
    def produce(txt,img,ver=5,err_crt = qrcode.constants.ERROR_CORRECT_H,bri = 1.0, cOnt= 1.0,\
    AttributeError: 'module' object has no attribute 'constants'

    是 qrcode 没有装好吗。。
    chinuno
        13
    chinuno  
    OP
       Mar 12, 2016
    @DennyDai
    @mikii
    fixed 。有问题还是 github 上面发 issue 吧
    chinuno
        14
    chinuno  
    OP
       Mar 12, 2016   1
    @liuhaotian 文件不要改名。跟 qrcode 模块名字冲突了。
    mikii
        15
    mikii  
       Mar 12, 2016
    @chinuno 可以了,很不错呀!
    liuhaotian
        16
    liuhaotian  
       Mar 12, 2016
    @chinuno
    尝试了改名,还是这样。

    另外在服务器上 pip install pillow 出现这样的错误提示是什么原因

    Command /usr/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip-build-t6sJPa/pillow/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-nzGH07-record/install-record.txt --single-version-externally-managed --compile failed with error code 1 in /tmp/pip-build-t6sJPa/pillow
    Storing debug log for failure in /root/.pip/pip.log
    est
        17
    est  
       Mar 12, 2016
    666666666 多谢。
    chinuno
        18
    chinuno  
    OP
       Mar 12, 2016
    @liuhaotian 检查原来的 qrcode.py 是不是还留在当前目录,然后检查 qrcode.pyc 有没有删掉。
    pillow 的编译安装需要依赖几个其他的库,官方 wiki 有说。 so 上面相关的回答也一大把。不想装其他库试试旧版本
    pip install pillow==2.9.0
    liuhaotian
        19
    liuhaotian  
       Mar 12, 2016
    @chinuno 是我傻逼了。。
    谢谢!!!!!
    Khlieb
        20
    Khlieb  
       Mar 13, 2016 via Android
    如果有 API 的话可以编成 LibreOffice 的扩展,把生成的图片直接插入到文档里面
    TVBG
        21
    TVBG  
       Mar 13, 2016
    支持一个,比中间放个小的图片的强多了。
    csx163
        22
    csx163  
       Mar 13, 2016
    谢谢!网上在线的都赶不上这个。
    ericls
        23
    ericls  
       Mar 13, 2016
    提示一下, debian 下面可以通过 apt-get build-dep pillow 安装相关依赖

    谢谢楼主
    jzhone
        24
    jzhone  
       Mar 13, 2016 via iPhone
    比较想知道网上那些动态二维码怎么做的
    just1
        25
    just1  
       Mar 13, 2016 via Android
    加一个 requirements.txt 或者 setup.py
    ynyounuo
        26
    ynyounuo  
       Mar 13, 2016
    nisekoi
        27
    nisekoi  
       Mar 13, 2016
    已 star
    soli
        28
    soli  
       Mar 13, 2016 via iPhone
    先给个赞,收藏一下。回家再看。
    LokiSharp
        29
    LokiSharp  
       Mar 14, 2016
    可以彩色! Bravo !
    songkaiape
        30
    songkaiape  
       Mar 15, 2016
    感觉很不错,挺有意思,已 Star
    fire5
        31
    fire5  
       Mar 15, 2016
    恩赞的
    aksoft
        32
    aksoft  
       Mar 15, 2016
    你妹的,太了
    scola
        33
    scola  
       Aug 19, 2016
    我看了你的代码, 基本意思懂了
    第 73 , 74 行 没搞懂

    if img_img.getpixel((x,y))[2] == 0:
    continue

    img_img.getpixel((x,y))[2] 是 blue 的值 ?
    为什么要跳过这些像素点呢, 感觉没有必要跳过
    chinuno
        34
    chinuno  
    OP
       Aug 19, 2016 via Android
    @scola 过了那么久了都忘了
    可能是要跳过 alpha 透明的部分 3 不知道怎么变成 2 了
    scola
        35
    scola  
       Aug 19, 2016
    @chinuno 谢谢回复, 我感觉也应该是 alpha , 但是跳不跳过好像没什么影响
    About     Help     Advertise     Blog     API     FAQ     Solana     2842 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 106ms UTC 15:34 PVG 23:34 LAX 08:34 JFK 11:34
    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