java实现将图片转换成ascii字符文本图像
基本原理
实现原理比较简单,计算图像中像素的灰度值,使用一些ascii字符,如"@#&$%*o!;.",粗略代表几个梯度的灰度值,根据灰度值计算需要填充的ASCII字符,假设计算得到的灰度值为gray,ASCII字符数组为someAscii,填充的ASCII字符Character=someAscii[someAscii.length * gray / 255]。
代码
如果填充每一个像素位ASCII字符,最后得到的ASCII字符文本太大,所以做了一定的压缩处理(每次计算ASCII字符后跳过一定的像素数)
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;public class AsciiImageCreator {public static void create(File srcImgFile, File destAsciiImgFile) {final String base = "@#&$%*o!;.";String result = "";try {BufferedImage bufferedImage = ImageIO.read(srcImgFile);for (int i = 0; i < bufferedImage.getHeight(); i += 32) {for (int j = 0; j < bufferedImage.getWidth(); j += 8) {int pixel = bufferedImage.getRGB(j, i); // 下面三行代码将一个数字转换为RGB数字int red = (pixel & 0xff0000) >> 16;int green = (pixel & 0xff00) >> 8;int blue = (pixel & 0xff);float gray = 0.299f * red + 0.578f * green + 0.114f * blue;int index = Math.round(gray * (base.length() + 1) / 255);result += index >= base.length() ? " " : String.valueOf(base.charAt(index));}result += "\r\n";}FileWriter fileWriter = new FileWriter(destAsciiImgFile);fileWriter.write(result);fileWriter.flush();fileWriter.close();
// System.out.print(result);} catch (IOException e) {e.printStackTrace();}}public static void create(String srcImgFile, String destAsciiImgFile) {create(new File(srcImgFile),new File(destAsciiImgFile));}
}
java实现将图片转换成ascii字符文本图像相关推荐
- java png 转jpg_怎么用java将png图片转换成jpg格式的图片
png是一种背景透明格式的图片,大量用于网络上,保真性很好,JPG是压缩图片,占用空间少.但有一些失真,所以在将png图片转换成jpg图片之后,肯定是有一些差异的,毕竟这是两种不同的格式. 下面用一个 ...
- Python将图片转换成彩色字符图
# -*- coding:utf8 -*-import cv2charSize = 2#字符尺寸string = "$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcv ...
- html标签转换字符类型,java把html标签字符转换成普通字符(反转换成html标签)
package net.jasonjiang.web; import org.junit.Test; import org.springframework.web.util.HtmlUtils; /* ...
- Linux终端上如何将图像转换成 ASCII 艺术
想在 Linux 终端中做一些有趣的事情吗?把一张普通的图片转换成 ASCII 艺术怎么样?来看一下. 想在 Linux 终端中做一些有趣的事情吗?把一张普通的图片转换成 ASCII 艺术怎么样? 你 ...
- base64转html文件,图片转换成Base64编码集成到html文件
首先为什么要这么做? 原因很简单这样可以减少与服务器的请求,当然对于一些浏览器并不支持,如IE8.通常用在手机版网站中,具体转化方法如下: 1.在线打开Base64的编码器将图片编码成Base64 ...
- 16进制转换成ASCII码值
public String convertHexToString(String hex){StringBuilder sb = new StringBuilder();//49204c6f766520 ...
- python修改文件格式为jpg_python将.ppm格式图片转换成.jpg格式文件的方法
python将.ppm格式图片转换成.jpg格式文件的方法 将.ppm格式的图片转换成.jpg格式的图像,除了通过软件转换,还可以使用python脚本直接转换,so easy!!! from PIL ...
- 怎样才能将扫描图片转换成word
怎样才能将扫描图片转换成word jpeg是图像常用的一种,这类的图像文字相同也不能仿制和编辑,所以假如要运用图像中的文字,就需求将ipeg图像变换成word.可是大多数的人对怎样将jpeg图像变换成 ...
- 图片转换成文字的方法
图片转换成文字的方法 图像辨认,是指运用计算机对图像进行处理.分析和了解,以辨认各种不一样方式的政策和对像的技术.一般工业运用中,选用工业相机拍照图像,然后再运用软件依据图像灰阶差做进一步辨认处理.现 ...
最新文章
- Redis 笔记(14)— 持久化及数据恢复(数据持久方式 RDB 和 AOF、数据恢复、混合持久化)
- Drug Discovery Today | 频繁命中化合物机制探究:PAINS规则的局限性
- javascript刷新页面的集中办法
- 如何删除/删除Python不为空的文件夹?
- 机器学习——人工神经网络之后向传播算法(BP算法)
- ASP.NET创建文件并写入内容
- JavaFX UI控件教程(三)之Label
- 使对易失性字段的操作原子化
- 使用LinkedList模拟一个堆栈或者队列数据结构
- wordpress 插件_如何为您的Web应用程序创建WordPress插件
- php strcmp函数用法,php字符串比较函数用法小结(strcmp,strcasecmp,strnatcmp及strnatcasecmp)...
- Android系统的开机画面显示过程分析(2)
- 敏感词过滤的php代码,ThinkPHP敏感词汇过滤
- C#数据库编程实战经典
- 科学-建筑学:建筑学百科
- PHP ThinkPHP 命名空间引入(use )
- linux搜狗输入法皮肤,Ubuntu 12.04下安装搜狗拼音 + 安装搜狗皮肤
- mysql主从同步创建表不同步_MySQL新增数据库到主从同步列表 - 如何增加数据库到MySQL主从 - MySQL主从不同步解决办法...
- 中国用于先天性代谢错误的医用食品市场深度研究分析报告
- python字符串截取规则_Python字符串截取