「这是我参与11月更文挑战的第18天,活动详情查看:2021最后一次更文挑战」。
前面几篇博文介绍了使用jdk来对图片做一些有意思的转换,接下来我们再介绍一个有意思的玩法,直接根据图片,输出一个二维字符数组,实现用字符来实现绘画的场景
各位小伙伴可能都有看到过一些有趣的注释,比如大佛,美女之类的,通关本文,相信你也很可以很简单的实现类似的场景
关键实现,在前面的文章中其实也说到了,下面是超链
接下来我们需要做的就是将之前转成字符图片输出的地方稍微改一下,根据当前色颜色,来选择合适的替换字符保存下来
所以关键的实现在于,如何根据颜色来选择字符
1 | java复制代码// 这个字符来自于github搜索结果,下面将最后一个从原来的点号改成了空格,即白色时,不输出字符 |
接下来我们针对之前的方法,稍微改造一下
1 | java复制代码Color getAverage(BufferedImage image, int x, int y, int w, int h) { |
注意上面的实现,需要重点注意的是原图的遍历方式,一层一层的遍历,即外部是y轴,内部循环是x轴
接下来看一下测试case
1 | java复制代码@Test |
实际输出如下(实际输出结果与皮神还是很像的)
1 | text复制代码---------------------- 开始 ------------------------ |
虽说上面这个是输出了字符图,从结果上看也比价像,但是需要注意的是,若图片的背景非白色,主角不是那么突出的场景,通过上面的方式输出的结果可能就不太友好了,解决办法当然就是识别背景,识别主体,针对主体元素进行转换(这个过程后面有机会再介绍)
接下来我们借助开源项目 github.com/liuyueyi/qu… 来迅速的实现字符图输出
以一个冰雪女王的转换图来验证下效果
1 | java复制代码String file = "http://5b0988e595225.cdn.sohucs.com/images/20200410/76499041d3b144b58d6ed83f307df8a3.jpeg"; |
一灰灰的联系方式
尽信书则不如无书,以上内容,纯属一家之言,因个人能力有限,难免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激
- 个人站点:blog.hhui.top
- 微博地址: 小灰灰Blog
- QQ: 一灰灰/3302797840
- 微信公众号:一灰灰blog
本文转载自: 掘金