字符图片输出~~~
你有没有给TA送礼物而困扰过?
你有没有绞尽脑汁不知道送啥好玩的?
口红?哦,所有的颜色都是红色
布娃娃?玩偶?额,抱着它走在街上不太好意思…
包?咦,太贵了买不起???
零食?没有创意,TA嫌你没有❤…
哎妈呀,咋整???????
别急别慌,我们今天就来唠一唠新式的送礼物大法咯,保准惊艳了TA的时光和青春
首先搞到一张你对象的靓照(你要是没有那就完蛋了)
第二步,直接上代码
package demo;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class Pic {
public static void main(String[] args) throws IOException {
//这里面是放大后的每个像素点的文字哦,你可以随便换
String sentence = "love";
//先读入你的图片所在了路径
BufferedImage image = ImageIO.read(new File("F:/image/cat.jpg"));
//获得当前图片的宽和高(注意不要太大,否则内存溢出)
int height = image.getHeight();
int width = image.getWidth();
//遍历得到每一个像素点
for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
//得到每一个像素点的颜色,此时是彩色的哦
int color = image.getRGB(x,y);
//打印出来是黑白的,所以要计算灰度值
int r = (color & 0xff0000) >> 16;
int g = (color & 0xff00) >> 8;
int b = color & 0xff;
float gray = 0.299f * r + 0.578f * g + 0.114f * b;
//得到当前每一个像素的下标
int index = Math.round(gray/255*(sentence.length()+1));
//进行判断
if(index < sentence.length()) {
//这里注意不能换行
System.out.print(sentence.charAt(index));
}else {
1.防止数组越界
//2.当前点是白色 值就是等于字符串的长度 就不用打印 因为打印也不看出来 打印空格 轮廓出来就行
System.out.print(" ");
}
}
//内层for循环结束后换行
System.out.println();
}
}
}
注意得把编码格式换成utf-8。否则出不来效果哦~

小哥哥小姐姐们,快快行动起来啦~
换上你喜欢的TA的照片,看看效果吧
版权声明:本文为weixin_48682891原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。