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
songkaiape
V2EX  ›  Python

接力:又撸了个可以个性化 QR 码的小工具,又撸了一点小功能,可以撸动态 QR 码了

  •  
  •   songkaiape · 2016-03-17 17:40:14 +08:00 · 4131 次点击
    这是一个创建于 3175 天前的主题,其中的信息可能已经有所发展或是发生改变。

    接力t/263050 @chinuno 觉得这个很有趣,膜拜了下大牛。然后被这个/t/261679启发了下,发现居然还可以做成 gif 。于是,就站在大牛的肩膀上撸了个小功能(其实都是在调用别人库) 代码在这里:GITHUB/n 效果如下: 不知道怎么贴 GIF 大家点开看吧-。- GIF 二维码

    GIF 原图 因为调用的 images2gif 这个库只支持 Python2 ,所以只能在 python2 下使用 GIF 功能 (尝试了去把这个库改写到 python3 但是=。=,出现了奇怪的问题, gif 导出之后无法打开,猜测是编码问题,折腾了半天没搞定)

    然后发现实际上有个网站可以实现以上各种功能。 大家去玩耍吧 Visuallead

    15 条回复    2017-05-26 23:34:33 +08:00
    chinuno
        1
    chinuno  
       2016-03-17 18:21:01 +08:00
    挺棒的。给个小建议吧,如果要在网页上用的话可以用 WebP 格式, gif 体积太大了
    hayao650
        2
    hayao650  
       2016-03-17 19:18:34 +08:00 via Android
    马克一下,到家看看
    3dwelcome
        3
    3dwelcome  
       2016-03-17 23:26:53 +08:00 via Android
    疯狂启用 qr 码最有价值的自我修复功能、等到真的出现部分破损、容错值达到一定上限就傻眼了。
    songkaiape
        4
    songkaiape  
    OP
       2016-03-18 00:28:24 +08:00
    @3dwelcome 这个很对的,所以这种 QR 只能存些网址简单的信息。稍微复杂一点识别率就下降很多,不过现在主流 QR 不就是存个网址么~~所以还可以折腾~
    songkaiape
        5
    songkaiape  
    OP
       2016-03-18 00:29:05 +08:00
    @chinuno 嗯~回去再研究下~不太清楚 WebP 格式的东西
    chinuno
        6
    chinuno  
       2016-03-18 08:10:59 +08:00
    @3dwelcome 也不算疯狂使用自我修复了。扫描软件一般是取像素块中间位置的颜色,我做的相当于把方块缩小了,说到影响有可能因为手机摄像头太渣小方块拍不清。对于微信嵌入网页长按识别影响不大
    3dwelcome
        7
    3dwelcome  
       2016-03-18 09:54:02 +08:00
    @chinuno 扫描软件一般是取像素块的面积,作为估算值吧,黑色面积大于一定 tolerance ,为 1 ,否则就为 0.

    不过对于识别影响确实不大,二维码大部分不是纸质打印,电子版完全不可能有意外破损。创意 QR 又要好看,又要完全不破坏像素面积,太难了。
    hydyy
        8
    hydyy  
       2016-03-18 10:24:37 +08:00
    mark
    fanwei
        9
    fanwei  
       2016-03-18 10:56:58 +08:00
    @songkaiape
    这是个啥错误啊! 直接用你代码执行报的错!
    python main.py -g True -d 0.05 d.gif http://songkaiape.github.io

    [测试环境 debian python 2.7.3]


    File "main.py", line 70, in <module>
    temp=produce(txt,im,3,ec,bri, cont ,colourful = True,rgb=(100,150,0))
    File "/home/xxxxxxxxxxxxxx/CuteR/CuteR.py", line 47, in produce
    img_img = Image.open(img).convert('RGBA')
    File "/usr/local/lib/python2.7/dist-packages/PIL/Image.py", line 2265, in open
    prefix = fp.read(16)
    File "/usr/local/lib/python2.7/dist-packages/PIL/Image.py", line 628, in __getattr__
    raise AttributeError(name)
    AttributeError: read
    songkaiape
        10
    songkaiape  
    OP
       2016-03-18 11:21:13 +08:00
    @fanwei 我的问题,有个文件我修改了但是后面没有提交,你可以把 img_img = Image.open(img).convert('RGBA') 改为 img_img=img.convert('RGBA'),应该就可以过了,我待会会修改下重新提交到 GITHUB 上
    cheerzeng
        11
    cheerzeng  
       2016-03-20 00:26:33 +08:00
    楼主,看到是 GPLv3 授权,那么我可以直接把代码运行在我自己的网站上吗?对授权方面不大懂
    cheerzeng
        12
    cheerzeng  
       2016-03-20 03:27:31 +08:00
    楼主,看了 visuallead 的效果之后,感觉它是用生成的二维码然后透明化叠加在初始图片上的。
    然后我就试着把你的生成的图片做了一定透明化处理,叠加在初始图片上,效果感觉更好
    songkaiape
        13
    songkaiape  
    OP
       2016-03-21 14:30:59 +08:00
    @cheerzeng 可以啊,如果愿意的话可以把你修改的版本在 GITHUB 上面放出来,让大家看看你的做的改进,透明化应该是个不错的主意
    designer
        14
    designer  
       2016-08-06 19:02:42 +08:00
    很棒啊 楼主!赞一个
    Khlieb
        15
    Khlieb  
       2017-05-26 23:34:33 +08:00 via Android
    LZ 还可以研究下 APNG 格式
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3781 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 04:15 · PVG 12:15 · LAX 20:15 · JFK 23:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.