普通图片转换为ASSIC码灰度图片

原图:

效果图:

转换方法

读取图片文件到BufferedImage

读取BufferedImage中的RGB值

将RGB三色值按照(0.3,0.59,0.11)权重获取灰度值(据说是眼睛对RGB敏感度不同)

将当前灰度值根据大小转换为ASSIC编码输出

代码:

import javax.imageio.ImageIO;

import java.awt.image.BufferedImage;

import java.io.*;

/**

* @Description:?【lious】?->图片转字符图

* @Author: Mr.li

* @Date: 2020/1/13

*/

public class sort {

final static String regularString = "@#$&%*!^;,.";

/**

* @Description:?【】?->

* @Param: [bufferedImage]

* @Return: void

* @Author: Mr.li

* @Date: 2020/1/13

*/

public static void convertImageToASSIC(BufferedImage bufferedImage) {

int imageWidth = bufferedImage.getWidth();//得到宽

int imageHeight = bufferedImage.getHeight();//得到高

for (int coordinateX = 0; coordinateX < imageHeight; coordinateX += 5) {

for (int coordinateY = 0; coordinateY < imageWidth; coordinateY += 2) {

int orientRGB = bufferedImage.getRGB(coordinateY, coordinateX);//得到颜色空间

int componentR = (orientRGB >> 16) & 0xff;//编译时加上了 GD 库 2.0 或更高的版本并且图像是真彩色图像,

int componentG = (orientRGB >> 8) & 0xff; // 则本函数以整数返回该点的 RGB 值。用移位加掩码来取得红,绿,蓝各自成分的值.

int componentB = orientRGB & 0xff;

int pixelDegree = (int) (componentR * 0.3 + componentG * 0.59 + componentB * 0.11);//得到 image 所指定的图形中指定位置像素的颜色索引值。

System.out.print(regularString.charAt(pixelDegree / 24));

}

System.out.println();

}

}

public static void main(String[] args) {

File imageFile = new File("/Users/lzl/Desktop/python/wf.jpg");

System.out.println(imageFile.getAbsoluteFile());

try {

BufferedImage bufferedImage = ImageIO.read(imageFile);//读取图片

convertImageToASSIC(bufferedImage);

} catch (IOException e) {

e.printStackTrace();

}

}

}

java图片转字符_java实现图片转字符图(看的过去的亚子)相关推荐

  1. java exif 语言编码_Java读取图片EXIF信息的代码

    Java读取图片EXIF信息的代码 本文实例讲述了Java读取图片EXIF信息的方法.分享给大家供大家参考.具体分析如下: 首先介绍一下什么是EXIF,EXIF是Exchangeable Image ...

  2. java 给图片加马赛克_java处理图片--图片的缩放,旋转和马赛克化

    下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. 这是我自己结合网上的一些资料封装的java图片处理类,支持图片的缩放,旋转,马赛克化.(转 ...

  3. java 图片上写字_java 在图片上写字,两个图片合并的实现方法

    实例如下: package writeimg; import javax.imageio.ImageIO; import java.awt.Color; import java.awt.Font; i ...

  4. java 两张图片合并_java 在图片上写字,两个图片合并的实现方法

    实例如下: package writeimg; import javax.imageio.ImageIO; import java.awt.Color; import java.awt.Font; i ...

  5. java制作水效果_java实现图片加水印效果

    图片加水印代码,这些代码不常用,但是用到的时候需要注意的地方也挺多的,每次都重写比较麻烦,记下来备忘.代码是图片加水印的一般流程,可根据实际项目需要自行修改. 注:代码在JPG和PNG格式图片下测试通 ...

  6. java获取图片的分辨率_Java读取图片分辨率

    代码依赖于其他工具包,下载请移步:http://download.csdn.net/detail/zhaoguoshuai91/9231957 废话不多说,直接上代码 public class Ima ...

  7. java文字水印换行_Java实现图片水印文字换行、平铺、旋转效果-Go语言中文社区...

    import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.Image; impo ...

  8. java 图片上传_java web图片上传和文件上传实例

    本篇文章主要介绍了java web图片上传和文件上传实例,具有一定的参考价值,有需要的可以了解一下. 图片上传和文件上传本质上是一样的,图片本身也是文件.文件上传就是将图片上传到服务器,方式虽然有很多 ...

  9. java点击图片发出声音_Java 中图片和声音文件的加载

    /* * 本程序实现以下效果: * 1.界面显示一个按钮,按钮初始为红色. * 2.将鼠标移到按钮上时,按钮呈蓝色. * 3.点击鼠标,有声音效果. * 4.鼠标离开按钮时,按钮恢复成红色. */ i ...

最新文章

  1. STM32单片机怎么学最快?用这个方法只需要一周!
  2. 基于SSM+Layui实现医院预约挂号系统
  3. IT员工应该向谁汇报工作,CFO or CEO?
  4. WPF canvas、基本图形、path几个示例
  5. 2017年 第08届 蓝桥杯 Java B组 决赛真题详解及小结
  6. boost::fast_pool_allocator
  7. linux编译lnx文件命令_linux命令dd
  8. 关于不过洋节的通知_平安夜、圣诞节安全教育告家长通知书
  9. C++ 引用的几个用法
  10. 睿智的seq2seq模型4——往英文到法文的翻译里加上注意力机制
  11. python爬虫解决频繁访问_python爬虫程序如何预防被限制
  12. Git-LFS:大文件也有了版本管理
  13. win10 按用户名访问计算机,win7访问win10系统时需要输入用户名密码的两种解决方法...
  14. 【CF487E】 Tourists 简易题解
  15. 【收藏】2018-2019届互联网大厂公司校招薪资汇总,基本年薪都在20万以上
  16. 22-05-21 西安 javaweb(07) HttpServletRequest和HttpServletResponse、转发与重定向、web应用的路径问题、解决中文乱码问题
  17. 关于表单防重复提交一些东东
  18. 浅谈微机综合自动化系统在化工企业变电站中应用
  19. Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 85 bytes)
  20. JavaDay16-P104-P142—二分法查找—String类—常量池—包装—装箱、拆箱—NumberFormatException

热门文章

  1. LBS由ip查经纬度
  2. Skype现已支持开源VP8视频编解码器
  3. IEDevToolBar - 一个分析网页的有用的工具
  4. 将TreeView中导出为XML数据
  5. jvm学习笔记(3)——java对象的内存分配和对象的回收(GC)
  6. SpringMVC中拦截/和拦截/*的区别
  7. 【mysql系列】细谈explain执行计划之“谜”
  8. PHP实现一个轻量级容器
  9. 幅度调制(AM调制、DSB(双边带)调制、SSB、VSB)
  10. futureTask的超时原理解析