package com.demo;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.imageio.ImageIO;
public class Test {
public static void main(String[] args) throws IOException {
// 图片缓冲类 ImageIO读取图片类. 读取指定路径的图片.
BufferedImage image = ImageIO.read(new File("d:/dahui/QWQ.png"));
// 获取指定图片的高度.
int height = image.getHeight();
// 获取指定长度的宽度.
int width = image.getWidth();
String base = "宝宝呀";
BufferedImage out = new BufferedImage(width*16,height*16,BufferedImage.TYPE_INT_RGB);
Graphics2D graphics2d = out.createGraphics();
graphics2d.setColor(Color.WHITE);
graphics2d.fillRect(0, 0, width*16, height*16);
graphics2d.setColor(Color.BLACK);
// 双重循环遍历. 外层遍历纵向. 内层循环遍历横向.
for(int i = 0; i < height; i++) {
for(int j = 0 ; j < width;j++) {
// 先得到颜色.
int clolr = image.getRGB(j,i);
// 得到红色
int red = (clolr>>16)&0xff;
// 得到绿色
int green = (clolr>>8)&0xff;
// 得到蓝色.
int blue = clolr&0xff;
// 指定格式公式. 获取灰度值.
float gray = 0.299f * red + 0.578f * green + 0.114f * blue;
int index = Math.round(gray/255*base.length());
graphics2d.setColor(new Color(clolr));
if(index >= base.length()) {
// System.out.print(" ");
graphics2d.drawString(" ", j*16, i*16);
}else {
// System.out.print(base.charAt(index));
graphics2d.drawString(String.valueOf(base.charAt(index)), j*16, i*16);
}
}
// System.out.println();
}
ImageIO.write(out, "JPEG", new FileOutputStream(new File("d:/dahui/Q2.jpg")));
}
}