见过这样的二维码生成器吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
free6om
V2EX    科技

见过这样的二维码生成器吗?

  •  4
     
  •   free6om 2016-02-25 13:53:26 +08:00 10368 次点击
    这是一个创建于 3592 天前的主题,其中的信息可能已经有所发展或是发生改变。

    搞了个ASCII Art 二维码生成器,效果图如下:

    Sample

    单来说就是选择图片中的一块区域和给定 URL ,将 URL 生成二维码,满足二维码的黑白色块构成的图形与所选区域的形状基本相似。

    代码在这里: https://github.com/dieforfree/qart4j
    欢迎试用和反馈问题!

    58 条回复    2017-12-02 11:28:10 +08:00
    jonechenug
        1
    jonechenug  
       2016-02-25 14:05:55 +08:00 via Android
    我是阿宝,为什么要把我打码,好东西
    est
        2
    est  
       2016-02-25 14:13:18 +08:00
    网址后面一大串随机字符???

    我也发一个

    free6om
        3
    free6om  
    OP
       2016-02-25 14:26:39 +08:00
    @jonechenug 不怕,有码也高清
    v1024
        4
    v1024  
       2016-02-25 14:27:40 +08:00
    好棒
    free6om
        5
    free6om  
    OP
       2016-02-25 14:30:12 +08:00
    @est 被你发现了,"随机字符"正是为了让二维码尽量逼近背景图形,所以也不算真正的"随机"。你发的这个主要用了二维码纠错能力
    designer
        6
    designer  
       2016-02-25 14:33:50 +08:00
    很有趣的。。。可惜我运行不了哇。要 java 环境支持吗
    jacy
        7
    jacy  
       2016-02-25 14:42:09 +08:00   3
    jacy
        8
    jacy  
       2016-02-25 14:43:48 +08:00
    对了,上面这个好像不要随机字符
    free6om
        9
    free6om  
    OP
       2016-02-25 14:45:42 +08:00
    @designer 是的,需要 Java 环境。用在宣传海报打二维码比较适合,二维码与背景相似,还可以调整二维码的色彩和透明度,这样使二维码不会像一块膏药那样突兀。
    hqdmy
        10
    hqdmy  
       2016-02-25 14:45:47 +08:00
    coolshell 大神的头像就是这么搞得么
    dong3580
        11
    dong3580  
       2016-02-25 14:48:18 +08:00
    @est
    好可爱,
    ceoimon
        12
    ceoimon  
       2016-02-25 14:48:20 +08:00
    见过。就是 7 楼那个,还能弄 GIF 的。
    free6om
        13
    free6om  
    OP
       2016-02-25 14:50:26 +08:00
    @jacy 这篇论文里当时看到时,觉得逼近程度可以用"震撼"来形容,半色调结合二维码纠错,对二维码内容也不需要做修改,原理跟我发的这个不一样
    free6om
        14
    free6om  
    OP
       2016-02-25 14:52:58 +08:00
    @hqdmy 果然有人提到 coolshell 大神了,我就是看到大神的头像,有感,于是怀上了...于是搞了这个库。
    free6om
        15
    free6om  
    OP
       2016-02-25 15:01:03 +08:00
    @ceoimon 百度也搞过 GIF 二维码,估计就是用了 7 楼那篇论文
    designer
        16
    designer  
       2016-02-25 15:04:05 +08:00
    @free6om 大牛和各位大牛。有没有七楼 那篇论文的 在线生成二维码化图像 站点或者软件啊?,感觉 图像化非常清晰,网址跳转非常的快。
    用 UC 扫你的那个海报的码,扫不出来。
    Strikeactor
        17
    Strikeactor  
       2016-02-25 15:05:07 +08:00
    好棒
    ikw
        18
    ikw  
       2016-02-25 15:08:47 +08:00
    不错,已 Star ,有空再看看那个论文
    free6om
        19
    free6om  
    OP
       2016-02-25 15:09:59 +08:00   1
    @designer 7 楼论文作者把相应的软件也实现了: http://cgv.cs.nthu.edu.tw/Projects/Recreational_Graphics/Halftone_QRCodes/

    海报里那个二维码我为了能让人快速看到效果,牺牲了些可识别性。
    free6om
        20
    free6om  
    OP
       2016-02-25 15:13:01 +08:00
    @zwpaper 阿里巴巴收购的一个公司在另外一个方向上也走的比较远,也可以看看: http://www.visualead.com/
    garipan
        21
    garipan  
       2016-02-25 15:17:21 +08:00
    见过 还研究过那个 paper 但是没有看懂…… :)
    plqws
        22
    plqws  
       2016-02-25 15:40:43 +08:00
    如果能加上颜色就更好了
    just4test
        23
    just4test  
       2016-02-25 15:46:11 +08:00
    visualead 早实现了。我还买了他们家一个月会员,结果到现在三年了都还是会员……
    Tink
        24
    Tink  
    PRO
       2016-02-25 15:51:04 +08:00
    我记得我在 coolshell 的陈浩的微博头像上见到过这样的
    qw7692336
        25
    qw7692336  
       2016-02-25 15:52:15 +08:00
    居然可以扫
    free6om
        26
    free6om  
    OP
       2016-02-25 16:04:46 +08:00
    @plqws 颜色有参数可以设置的,不过目前仅支持全部黑色块和全部白色块的 ARGB 值设置,还不能针对单个色块进行设置
    ayouwei
        27
    ayouwei  
       2016-02-25 16:08:20 +08:00
    mark..
    toou123
        28
    toou123  
       2016-02-25 16:28:44 +08:00
    好牛逼
    keepcleargas
        29
    keepcleargas  
       2016-02-25 17:08:52 +08:00
    有意思.
    luoyetx
        30
    luoyetx  
       2016-02-25 18:40:13 +08:00
    mark 下,挺有意思的
    free6om
        31
    free6om  
    OP
       2016-02-25 20:41:13 +08:00
    @garipan 我当时也是看的云里雾里
    wbsdty331
        32
    wbsdty331  
       2016-02-25 21:45:14 +08:00
    有意思
    马克一下
    garipan
        33
    garipan  
       2016-02-25 22:10:17 +08:00 via iPhone
    @free6om 那后来咋弄懂的 求解释 是用了现成的库吗?
    ebony0319
        34
    ebony0319  
       2016-02-25 22:11:27 +08:00 via Android
    这个有意思,收藏了。
    free6om
        35
    free6om  
    OP
       2016-02-25 22:13:21 +08:00
    @Tink 我就是看到 coolshell 的头像,然后搞了这么个东西
    free6om
        36
    free6om  
    OP
       2016-02-25 22:15:50 +08:00
    @garipan 我这个的原理跟 paper 里的不一样, paper 那个有实现: http://cgv.cs.nthu.edu.tw/Projects/Recreational_Graphics/Halftone_QRCodes/
    Jaylee
        37
    Jaylee  
       2016-02-25 22:41:51 +08:00
    好棒,已 star
    free6om
        38
    free6om  
    OP
       2016-02-26 06:49:26 +08:00 via Android
    free6om
        39
    free6om  
    OP
       2016-02-26 07:44:27 +08:00 via Android
    @garipan paper 里感觉最关键的是那个基本形状库和匹配算法,其他用类似 opencv 的图形处理库都比较容易实现
    ikw
        40
    ikw  
       2016-02-26 10:11:42 +08:00
    @free6om 那怎么市面上还是比较少见呢?应该是挺有应用点的一个创意
    NovemberEleven
        41
    NovemberEleven  
       2016-02-26 10:11:53 +08:00
    好棒。
    free6om
        42
    free6om  
    OP
       2016-02-26 11:16:24 +08:00
    @zwpaper 阿里那个更多的是给自己生态内的厂家、伙伴、用户等在用,对全互联网没什么推广力度。也可能是二维码终究是个深度细分的市场,并且大家对常见的那个黑乎乎二维码已普遍接受,认为二维码就是或就应该这样,对其视觉审美没啥要求
    ligyxy
        43
    ligyxy  
       2016-02-26 12:05:40 +08:00 via Android
    哦咯 这个棒
    went
        44
    went  
       2016-02-26 15:52:06 +08:00
    po 主可以对参数做些说明吗
    free6om
        45
    free6om  
    OP
       2016-02-26 16:24:06 +08:00
    @went 可以通过`--help`打印参数说明,里面最主要的参数如下:
    -i 输入图片路径
    -o 输出图片路径
    -w 输出图片宽度
    -h 输出图片高度
    -u 二维码中的 URL
    -v 二维码 version ,可参看二维码规范文档
    -z 生成的二维码图片大小
    --ml, --mr, --mt, --mb 四个参数用来确定二维码在整个图片中的位置信息, ml 是 margin-left 的意思,其他类似
    --cb, --cw 分别用来制定二维码中黑色块和白色块的 ARGB 值
    cha1
        46
    cha1  
       2016-02-26 17:59:20 +08:00
    很好玩的东西,赞一个。

    给楼主提一些建议:
    1. 代码库中建议加入生成好的 jar 文件。并不是每个人都有安装 Maven 的。
    2. 不提供参数执行 runnable.jar 这个文件,会抛出一个错误。现在的命令行程序不都是不提供任何参数的时候,打印帮助信息吗?

    错误如下:
    $ java -jar qart4j.jar
    2016-02-26 17:58:29.397 1 [main] ERROR test - encode error
    java.io.FileNotFoundException: input.png (系统找不到指定的文件。)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:138)
    at org.apache.commons.imaging.common.bytesource.ByteSourceFile.getInputStream(ByteSourceFile.java:40)
    at org.apache.commons.imaging.Imaging.guessFormat(Imaging.java:263)
    at org.apache.commons.imaging.Imaging.getImageParser(Imaging.java:738)
    at org.apache.commons.imaging.Imaging.getBufferedImage(Imaging.java:1402)
    at org.apache.commons.imaging.Imaging.getBufferedImage(Imaging.java:1370)
    at free6om.research.qart4j.ImageUtil.loadImage(ImageUtil.java:40)
    at free6om.research.qart4j.QArt.main(QArt.java:180)
    xcodebuild
        47
    xcodebuild  
       2016-02-26 21:48:36 +08:00
    有意思,才知道还有这样的东西
    free6om
        48
    free6om  
    OP
       2016-02-27 15:39:52 +08:00 via Android
    @zqhong 不错的建议,第 1 点我可以将打包好的 jar 放到 github 的 release 里;第 2 点不错,更友好
    free6om
        49
    free6om  
    OP
       2016-02-27 15:42:05 +08:00 via Android   1
    @codefalling 2 楼, 7 楼, 20 楼提到的也很有意思
    goldengate
        50
    goldengate  
       2016-02-27 20:19:36 +08:00 via Android
    有意思,二维码还可以这么玩
    goldengate
        51
    goldengate  
       2016-02-27 20:39:32 +08:00 via Android
    参数可以汉化下不?有些英语不太明白
    wzxjohn
        52
    wzxjohn  
       2016-02-29 16:26:03 +08:00
    @just4test 因为现在好像不能买会员了。亏了啊。。。
    just4test
        53
    just4test  
       2016-02-29 20:43:51 +08:00
    @wzxjohn 还可以。挂美国代理。
    wzxjohn
        54
    wzxjohn  
       2016-03-01 14:46:17 +08:00
    @just4test 还真是!不知道现在是不是不取消哈哈
    wzxjohn
        55
    wzxjohn  
       2016-03-01 16:33:45 +08:00
    @just4test 我看了下是自动循环扣费的。。。你不会被扣了 3 年吧。。。
    just4test
        56
    just4test  
       2016-03-01 18:01:51 +08:00 via Android
    @wzxjohn 并没有。算是占了便宜吗,不过后来就没用过。这玩意要是提供 API 还行,没有 API ,自己又不开公司,真是没啥好玩的。
    而且他们家如果要生成质量好的二维码靠的是短链接。然后短链接网址被墙了。
    也可以生成直接链接,但是效果没那么好而且有数量限制,按照付费等级每月补充。我虽然高级账户还可以用,但就没有补充了。
    wzxjohn
        57
    wzxjohn  
       2016-03-01 23:24:31 +08:00
    @just4test API 确实不给。不过刚好有相关需求,就当买两个生成个个人二维码玩玩好啦~
    cdlcm
        58
    cdlcm  
       2017-12-02 11:28:10 +08:00
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2575 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 44ms UTC 05:15 PVG 13:15 LAX 21:15 JFK 00:15
    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