栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java---------bufferedImage字符图片输出~~~

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java---------bufferedImage字符图片输出~~~

字符图片输出~~~

你有没有给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的照片,看看效果吧

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/322127.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号