java实现图片转ascii字符画的方法示例
2016-10-27 00:00
459 查看
最近抖音上挺火的一个小把戏,在记事本打开,一整篇的乱码字符,然后进过调整之后,出现一张由各种字符组成的黑白照片。先看一个效果图
效果如下:
实现原理:
将图片分解为像素点然后计算出每个点的灰度值,根据不同的灰度用不同的字符填充.
具体代码:
package com.dongge; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; /** * @author 东哥 2016年10月27日 * */ public class AsciiPic { /** * @param path * 图片路径 */ public static void createAsciiPic(final String path) { final String base = "@#&$%*o!;.";// 字符串由复杂到简单 try { final BufferedImage image = ImageIO.read(new File(path)); for (int y = 0; y < image.getHeight(); y += 2) { for (int x = 0; x < image.getWidth(); x++) { final int pixel = image.getRGB(x, y); final int r = (pixel & 0xff0000) >> 16, g = (pixel & 0xff00) >> 8, b = pixel & 0xff; final float gray = 0.299f * r + 0.578f * g + 0.114f * b; final int index = Math.round(gray * (base.length() + 1) / 255); System.out.print(index >= base.length() ? " " : String.valueOf(base.charAt(index))); } System.out.println(); } } catch (final IOException e) { e.printStackTrace(); } } /** * test * * @param args */ public static void main(final String[] args) { AsciiPic.createAsciiPic("D:\\20161027095850.png"); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
相关文章推荐
- java实现合并图片的方法示例
- Java实现给图片添加图片水印,文字水印及马赛克的方法示例
- Java实现自动压缩文件并加密的方法示例
- Java实现求解一元n次多项式的方法示例
- C#实现缩放和剪裁图片的方法示例
- PHP实现浏览器中直接输出图片的方法示例
- Java实现将png格式图片转换成jpg格式图片的方法【测试可用】
- Python实现批量读取图片并存入mongodb数据库的方法示例
- Java实现url加密处理的方法示例
- java实现压缩图片的方法
- C#实现把图片转换成二进制以及把二进制转换成图片的方法示例
- C#实现缩放和剪裁图片的方法示例
- PHP实现微信图片上传到服务器的方法示例
- JAVA过滤标签实现将html内容转换为文本的方法示例
- asp.net(c#)编程实现将彩色图片变灰阶图片的方法示例
- Java通过jersey实现客户端图片上传示例
- Java基于余弦方法实现的计算相似度算法示例
- 详解JAVA生成将图片存入数据库的sql语句实现方法
- Android编程实现保存图片到系统图库的方法示例
- Java编程实现获取当前代码行行号的方法示例