接力:又撸了个可以个性化 QR 码的小工具,又撸了一点小功能,可以撸动态 QR 码了 - 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
songkaiape
V2EX    Python

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

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

    接力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     Solana     4630 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powerd by solitude
    VERSION: 3.9.8.5 36ms UTC 09:46 PVG 17:46 LAX 01:46 JFK 04:46
    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