前言
今晚闲来无事,整理了一下电脑中尘封已久的旧代码,看着那些年自己写过的代码,踩过的坑,顿时老泪纵横。正当在感叹之际,突然发现在“马克思”文件夹下出现了一个好玩的项目,那就是N年前刚学Java时写的GIF转字符动画的小玩具,虽然是个小玩意,但是在当时能搞点东西出来还是非常有成就感的。
正文
效果展示
原图,某两年半练习生
转成字符动画后的练习生
实现原理
其实字符动画的实现原理比较简单,这里我们抛开GIF,直接拿一张静态图片来说明。
首先我们要把原图转成灰度图,这样图片中每个像素就只存在亮度信息0-255。
取颜色的RGB均值灰度后
接着我们可以定义需要使用的字符,每个字符对应一段亮度范围,比如 图中的M
,@
,;
等字符,接着我们就可以去遍历替换图片中的所有像素,慢慢的调试每个字符对应像素的亮度范围,调试到输出的图像轮毂清晰即可,这样单张图片的字符画就已经成型了。下面关键代码注释。
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file)));
int width = bi.getWidth()