基本原理

实现原理比较简单,计算图像中像素的灰度值,使用一些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字符文本图像相关推荐

  1. java png 转jpg_怎么用java将png图片转换成jpg格式的图片

    png是一种背景透明格式的图片,大量用于网络上,保真性很好,JPG是压缩图片,占用空间少.但有一些失真,所以在将png图片转换成jpg图片之后,肯定是有一些差异的,毕竟这是两种不同的格式. 下面用一个 ...

  2. Python将图片转换成彩色字符图

    # -*- coding:utf8 -*-import cv2charSize = 2#字符尺寸string = "$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcv ...

  3. html标签转换字符类型,java把html标签字符转换成普通字符(反转换成html标签)

    package net.jasonjiang.web; import org.junit.Test; import org.springframework.web.util.HtmlUtils; /* ...

  4. Linux终端上如何将图像转换成 ASCII 艺术

    想在 Linux 终端中做一些有趣的事情吗?把一张普通的图片转换成 ASCII 艺术怎么样?来看一下. 想在 Linux 终端中做一些有趣的事情吗?把一张普通的图片转换成 ASCII 艺术怎么样? 你 ...

  5. base64转html文件,图片转换成Base64编码集成到html文件

    首先为什么要这么做?  原因很简单这样可以减少与服务器的请求,当然对于一些浏览器并不支持,如IE8.通常用在手机版网站中,具体转化方法如下: 1.在线打开Base64的编码器将图片编码成Base64 ...

  6. 16进制转换成ASCII码值

    public String convertHexToString(String hex){StringBuilder sb = new StringBuilder();//49204c6f766520 ...

  7. python修改文件格式为jpg_python将.ppm格式图片转换成.jpg格式文件的方法

    python将.ppm格式图片转换成.jpg格式文件的方法 将.ppm格式的图片转换成.jpg格式的图像,除了通过软件转换,还可以使用python脚本直接转换,so easy!!! from PIL ...

  8. 怎样才能将扫描图片转换成word

    怎样才能将扫描图片转换成word jpeg是图像常用的一种,这类的图像文字相同也不能仿制和编辑,所以假如要运用图像中的文字,就需求将ipeg图像变换成word.可是大多数的人对怎样将jpeg图像变换成 ...

  9. 图片转换成文字的方法

    图片转换成文字的方法 图像辨认,是指运用计算机对图像进行处理.分析和了解,以辨认各种不一样方式的政策和对像的技术.一般工业运用中,选用工业相机拍照图像,然后再运用软件依据图像灰阶差做进一步辨认处理.现 ...

最新文章

  1. Redis 笔记(14)— 持久化及数据恢复(数据持久方式 RDB 和 AOF、数据恢复、混合持久化)
  2. Drug Discovery Today | 频繁命中化合物机制探究:PAINS规则的局限性
  3. javascript刷新页面的集中办法
  4. 如何删除/删除Python不为空的文件夹?
  5. 机器学习——人工神经网络之后向传播算法(BP算法)
  6. ASP.NET创建文件并写入内容
  7. JavaFX UI控件教程(三)之Label
  8. 使对易失性字段的操作原子化
  9. 使用LinkedList模拟一个堆栈或者队列数据结构
  10. wordpress 插件_如何为您的Web应用程序创建WordPress插件
  11. php strcmp函数用法,php字符串比较函数用法小结(strcmp,strcasecmp,strnatcmp及strnatcasecmp)...
  12. Android系统的开机画面显示过程分析(2)
  13. 敏感词过滤的php代码,ThinkPHP敏感词汇过滤
  14. C#数据库编程实战经典
  15. 科学-建筑学:建筑学百科
  16. PHP ThinkPHP 命名空间引入(use )
  17. linux搜狗输入法皮肤,Ubuntu 12.04下安装搜狗拼音 + 安装搜狗皮肤
  18. mysql主从同步创建表不同步_MySQL新增数据库到主从同步列表 - 如何增加数据库到MySQL主从 - MySQL主从不同步解决办法...
  19. 中国用于先天性代谢错误的医用食品市场深度研究分析报告
  20. python字符串截取规则_Python字符串截取

热门文章

  1. 【MySQL体系结构】MySQL8.0物理文件结构
  2. zxmh.net 的漫画下载
  3. 查看windows机器的cpu信息
  4. 使用nutch搭建类似百度/谷歌的搜索引擎
  5. TokuDB InnoDB insert压力测试对比
  6. Android性能优化典范 - 第2季
  7. 【python起床服务】播放起床铃+给老板发邮件辞职
  8. 计算机市场最主流的cpu,什么cpu好 最受欢迎cpu推荐【详解】
  9. win11电脑输入法不见了怎么调出来
  10. 曾经有一件羽衣--名叫霓裳(转载)