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

单来说就是选择图片中的一块区域和给定 URL ,将 URL 生成二维码,满足二维码的黑白色块构成的图形与所选区域的形状基本相似。
代码在这里: https://github.com/dieforfree/qart4j
欢迎试用和反馈问题!
1 jonechenug 2016-02-25 14:05:55 +08:00 via Android 我是阿宝,为什么要把我打码,好东西 |
2 est 2016-02-25 14:13:18 +08:00 网址后面一大串随机字符??? 我也发一个 |
3 free6om OP @jonechenug 不怕,有码也高清 |
4 v1024 2016-02-25 14:27:40 +08:00 好棒 |
5 free6om OP @est 被你发现了,"随机字符"正是为了让二维码尽量逼近背景图形,所以也不算真正的"随机"。你发的这个主要用了二维码纠错能力 |
6 designer 2016-02-25 14:33:50 +08:00 很有趣的。。。可惜我运行不了哇。要 java 环境支持吗 |
7 jacy 2016-02-25 14:42:09 +08:00 |
8 jacy 2016-02-25 14:43:48 +08:00 对了,上面这个好像不要随机字符 |
9 free6om OP @designer 是的,需要 Java 环境。用在宣传海报打二维码比较适合,二维码与背景相似,还可以调整二维码的色彩和透明度,这样使二维码不会像一块膏药那样突兀。 |
10 hqdmy 2016-02-25 14:45:47 +08:00 coolshell 大神的头像就是这么搞得么 |
12 ceoimon 2016-02-25 14:48:20 +08:00 见过。就是 7 楼那个,还能弄 GIF 的。 |
13 free6om OP @jacy 这篇论文里当时看到时,觉得逼近程度可以用"震撼"来形容,半色调结合二维码纠错,对二维码内容也不需要做修改,原理跟我发的这个不一样 |
16 designer 2016-02-25 15:04:05 +08:00 @free6om 大牛和各位大牛。有没有七楼 那篇论文的 在线生成二维码化图像 站点或者软件啊?,感觉 图像化非常清晰,网址跳转非常的快。 用 UC 扫你的那个海报的码,扫不出来。 |
17 Strikeactor 2016-02-25 15:05:07 +08:00 好棒 |
18 ikw 2016-02-25 15:08:47 +08:00 不错,已 Star ,有空再看看那个论文 |
19 free6om OP @designer 7 楼论文作者把相应的软件也实现了: http://cgv.cs.nthu.edu.tw/Projects/Recreational_Graphics/Halftone_QRCodes/ 海报里那个二维码我为了能让人快速看到效果,牺牲了些可识别性。 |
20 free6om OP @zwpaper 阿里巴巴收购的一个公司在另外一个方向上也走的比较远,也可以看看: http://www.visualead.com/ |
21 garipan 2016-02-25 15:17:21 +08:00 见过 还研究过那个 paper 但是没有看懂…… :) |
22 plqws 2016-02-25 15:40:43 +08:00 如果能加上颜色就更好了 |
23 just4test 2016-02-25 15:46:11 +08:00 visualead 早实现了。我还买了他们家一个月会员,结果到现在三年了都还是会员…… |
24 Tink PRO 我记得我在 coolshell 的陈浩的微博头像上见到过这样的 |
25 qw7692336 2016-02-25 15:52:15 +08:00 居然可以扫 |
26 free6om OP @plqws 颜色有参数可以设置的,不过目前仅支持全部黑色块和全部白色块的 ARGB 值设置,还不能针对单个色块进行设置 |
27 ayouwei 2016-02-25 16:08:20 +08:00 mark.. |
28 toou123 2016-02-25 16:28:44 +08:00 好牛逼 |
29 keepcleargas 2016-02-25 17:08:52 +08:00 有意思. |
30 luoyetx 2016-02-25 18:40:13 +08:00 mark 下,挺有意思的 |
32 wbsdty331 2016-02-25 21:45:14 +08:00 有意思 马克一下 |
34 ebony0319 2016-02-25 22:11:27 +08:00 via Android 这个有意思,收藏了。 |
36 free6om OP @garipan 我这个的原理跟 paper 里的不一样, paper 那个有实现: http://cgv.cs.nthu.edu.tw/Projects/Recreational_Graphics/Halftone_QRCodes/ |
37 Jaylee 2016-02-25 22:41:51 +08:00 好棒,已 star |
39 free6om OP @garipan paper 里感觉最关键的是那个基本形状库和匹配算法,其他用类似 opencv 的图形处理库都比较容易实现 |
41 NovemberEleven 2016-02-26 10:11:53 +08:00 好棒。 |
42 free6om OP @zwpaper 阿里那个更多的是给自己生态内的厂家、伙伴、用户等在用,对全互联网没什么推广力度。也可能是二维码终究是个深度细分的市场,并且大家对常见的那个黑乎乎二维码已普遍接受,认为二维码就是或就应该这样,对其视觉审美没啥要求 |
43 ligyxy 2016-02-26 12:05:40 +08:00 via Android 哦咯 这个棒 |
44 went 2016-02-26 15:52:06 +08:00 po 主可以对参数做些说明吗 |
45 free6om OP @went 可以通过`--help`打印参数说明,里面最主要的参数如下: -i 输入图片路径 -o 输出图片路径 -w 输出图片宽度 -h 输出图片高度 -u 二维码中的 URL -v 二维码 version ,可参看二维码规范文档 -z 生成的二维码图片大小 --ml, --mr, --mt, --mb 四个参数用来确定二维码在整个图片中的位置信息, ml 是 margin-left 的意思,其他类似 --cb, --cw 分别用来制定二维码中黑色块和白色块的 ARGB 值 |
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) |
47 xcodebuild 2016-02-26 21:48:36 +08:00 有意思,才知道还有这样的东西 |
48 free6om OP @zqhong 不错的建议,第 1 点我可以将打包好的 jar 放到 github 的 release 里;第 2 点不错,更友好 |
49 free6om OP @codefalling 2 楼, 7 楼, 20 楼提到的也很有意思 |
50 goldengate 2016-02-27 20:19:36 +08:00 via Android 有意思,二维码还可以这么玩 |
51 goldengate 2016-02-27 20:39:32 +08:00 via Android 参数可以汉化下不?有些英语不太明白 |
56 just4test 2016-03-01 18:01:51 +08:00 via Android @wzxjohn 并没有。算是占了便宜吗,不过后来就没用过。这玩意要是提供 API 还行,没有 API ,自己又不开公司,真是没啥好玩的。 而且他们家如果要生成质量好的二维码靠的是短链接。然后短链接网址被墙了。 也可以生成直接链接,但是效果没那么好而且有数量限制,按照付费等级每月补充。我虽然高级账户还可以用,但就没有补充了。 |
58 cdlcm 2017-12-02 11:28:10 +08:00 |