java图片转字符_java实现图片转字符图(看的过去的亚子)
普通图片转换为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实现图片转字符图(看的过去的亚子)相关推荐
- java exif 语言编码_Java读取图片EXIF信息的代码
Java读取图片EXIF信息的代码 本文实例讲述了Java读取图片EXIF信息的方法.分享给大家供大家参考.具体分析如下: 首先介绍一下什么是EXIF,EXIF是Exchangeable Image ...
- java 给图片加马赛克_java处理图片--图片的缩放,旋转和马赛克化
下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. 这是我自己结合网上的一些资料封装的java图片处理类,支持图片的缩放,旋转,马赛克化.(转 ...
- java 图片上写字_java 在图片上写字,两个图片合并的实现方法
实例如下: package writeimg; import javax.imageio.ImageIO; import java.awt.Color; import java.awt.Font; i ...
- java 两张图片合并_java 在图片上写字,两个图片合并的实现方法
实例如下: package writeimg; import javax.imageio.ImageIO; import java.awt.Color; import java.awt.Font; i ...
- java制作水效果_java实现图片加水印效果
图片加水印代码,这些代码不常用,但是用到的时候需要注意的地方也挺多的,每次都重写比较麻烦,记下来备忘.代码是图片加水印的一般流程,可根据实际项目需要自行修改. 注:代码在JPG和PNG格式图片下测试通 ...
- java获取图片的分辨率_Java读取图片分辨率
代码依赖于其他工具包,下载请移步:http://download.csdn.net/detail/zhaoguoshuai91/9231957 废话不多说,直接上代码 public class Ima ...
- java文字水印换行_Java实现图片水印文字换行、平铺、旋转效果-Go语言中文社区...
import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.Image; impo ...
- java 图片上传_java web图片上传和文件上传实例
本篇文章主要介绍了java web图片上传和文件上传实例,具有一定的参考价值,有需要的可以了解一下. 图片上传和文件上传本质上是一样的,图片本身也是文件.文件上传就是将图片上传到服务器,方式虽然有很多 ...
- java点击图片发出声音_Java 中图片和声音文件的加载
/* * 本程序实现以下效果: * 1.界面显示一个按钮,按钮初始为红色. * 2.将鼠标移到按钮上时,按钮呈蓝色. * 3.点击鼠标,有声音效果. * 4.鼠标离开按钮时,按钮恢复成红色. */ i ...
最新文章
- STM32单片机怎么学最快?用这个方法只需要一周!
- 基于SSM+Layui实现医院预约挂号系统
- IT员工应该向谁汇报工作,CFO or CEO?
- WPF canvas、基本图形、path几个示例
- 2017年 第08届 蓝桥杯 Java B组 决赛真题详解及小结
- boost::fast_pool_allocator
- linux编译lnx文件命令_linux命令dd
- 关于不过洋节的通知_平安夜、圣诞节安全教育告家长通知书
- C++ 引用的几个用法
- 睿智的seq2seq模型4——往英文到法文的翻译里加上注意力机制
- python爬虫解决频繁访问_python爬虫程序如何预防被限制
- Git-LFS:大文件也有了版本管理
- win10 按用户名访问计算机,win7访问win10系统时需要输入用户名密码的两种解决方法...
- 【CF487E】 Tourists 简易题解
- 【收藏】2018-2019届互联网大厂公司校招薪资汇总,基本年薪都在20万以上
- 22-05-21 西安 javaweb(07) HttpServletRequest和HttpServletResponse、转发与重定向、web应用的路径问题、解决中文乱码问题
- 关于表单防重复提交一些东东
- 浅谈微机综合自动化系统在化工企业变电站中应用
- Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 85 bytes)
- JavaDay16-P104-P142—二分法查找—String类—常量池—包装—装箱、拆箱—NumberFormatException