又撸了个可以个性化 QR 码的小工具 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
chinuno
V2EX    分享创造

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

  •  5
     
  •   chinuno 2016-03-12 19:43:24 +08:00 6474 次点击
    这是一个创建于 3510 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    35 条回复    2016-08-19 13:18:58 +08:00
    mikii
        1
    mikii  
       2016-03-12 20:08:56 +08:00
    b( ̄ ̄)d
    Strikeactor
        2
    Strikeactor  
       2016-03-12 20:09:27 +08:00
    彩色的
    这个月的膝盖就决定给你了
    DennyDai
        3
    DennyDai  
       2016-03-12 21:09:40 +08:00
    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  
       2016-03-12 21:12:02 +08:00
    非常不错
    chinuno
        5
    chinuno  
    OP
       2016-03-12 21:14:31 +08:00
    @DennyDai fixed.这个问题在发布前就发现了,提交到 github 的时候拷错文件了。。。
    mikii
        6
    mikii  
       2016-03-12 21:17:56 +08:00
    mikii
        7
    mikii  
       2016-03-12 21:23:56 +08:00
    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  
       2016-03-12 21:25:24 +08:00
    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  
       2016-03-12 21:27:09 +08:00
    这个不错
    mikii
        10
    mikii  
       2016-03-12 21:28:47 +08:00
    @DennyDai 哈哈,怎么玩呀,为了装个 x 安装了好几个东西,还没搞出来~
    DennyDai
        11
    DennyDai  
       2016-03-12 21:31:06 +08:00
    @mikii 就两个。。。 pip install pillow qrcode
    liuhaotian
        12
    liuhaotian  
       2016-03-12 21:58:42 +08:00
    $ 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
       2016-03-12 21:59:46 +08:00
    @DennyDai
    @mikii
    fixed 。有问题还是 github 上面发 issue 吧
    chinuno
        14
    chinuno  
    OP
       2016-03-12 22:07:14 +08:00   1
    @liuhaotian 文件不要改名。跟 qrcode 模块名字冲突了。
    mikii
        15
    mikii  
       2016-03-12 22:08:29 +08:00
    @chinuno 可以了,很不错呀!
    liuhaotian
        16
    liuhaotian  
       2016-03-12 22:12:26 +08:00
    @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  
       2016-03-12 22:12:33 +08:00
    666666666 多谢。
    chinuno
        18
    chinuno  
    OP
       2016-03-12 22:35:20 +08:00
    @liuhaotian 检查原来的 qrcode.py 是不是还留在当前目录,然后检查 qrcode.pyc 有没有删掉。
    pillow 的编译安装需要依赖几个其他的库,官方 wiki 有说。 so 上面相关的回答也一大把。不想装其他库试试旧版本
    pip install pillow==2.9.0
    liuhaotian
        19
    liuhaotian  
       2016-03-12 22:47:51 +08:00
    @chinuno 是我傻逼了。。
    谢谢!!!!!
    Khlieb
        20
    Khlieb  
       2016-03-13 00:08:45 +08:00 via Android
    如果有 API 的话可以编成 LibreOffice 的扩展,把生成的图片直接插入到文档里面
    TVBG
        21
    TVBG  
       2016-03-13 00:22:13 +08:00
    支持一个,比中间放个小的图片的强多了。
    csx163
        22
    csx163  
       2016-03-13 01:09:48 +08:00
    谢谢!网上在线的都赶不上这个。
    ericls
        23
    ericls  
       2016-03-13 01:26:11 +08:00
    提示一下, debian 下面可以通过 apt-get build-dep pillow 安装相关依赖

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

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

    img_img.getpixel((x,y))[2] 是 blue 的值 ?
    为什么要跳过这些像素点呢, 感觉没有必要跳过
    chinuno
        34
    chinuno  
    OP
       2016-08-19 12:56:31 +08:00 via Android
    @scola 过了那么久了都忘了
    可能是要跳过 alpha 透明的部分 3 不知道怎么变成 2 了
    scola
        35
    scola  
       2016-08-19 13:18:58 +08:00
    @chinuno 谢谢回复, 我感觉也应该是 alpha , 但是跳不跳过好像没什么影响
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3843 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 22ms UTC 00:16 PVG 08:16 LAX 17:16 JFK 20:16
    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