V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
chinuno
V2EX  ›  分享创造

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

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

    之前看到/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   ·   我们的愿景   ·   实用小工具   ·   1938 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 16:22 · PVG 00:22 · LAX 09:22 · JFK 12:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.