java使用字符画一个海绵宝宝

网友投稿 538 2022-09-04


java使用字符画一个海绵宝宝

本文实例为大家分享了java使用字符画一个海绵宝宝的具体代码,供大家参考,具体内容如下

用字符画一个海绵宝宝

用" “和”*"两个字符画出一个海绵宝宝,效果如下:

emm……效果可能不是很好,原图是这样的:

下面展示我的代码

代码

提示:代码仅供参考,大部分来自于网络

package package1;

import java.awt.image.BufferedImage;

import java.io.File;

import java.io.IOException;

import javax.imageio.ImageIO;

public class ImageDraw {

public static void main(String[] args) throws IOException {

//需要使用哪种灰度化方式,就去掉那一行的注释"//"。

//grayImage(1,"E:\\image.jpg");//最大值法灰度化

//grayImage(2,"E:\\image.jpg");//最小值法灰度化

//grayImage(3,"E:\\image.jpg");//平均值法灰度化

//grayImage(4,"E:\\image.jpg");//加权法灰度化

}

public static void grayImage(int status, String imagePath) throws IOException {

File file = new File(imagePath);

BufferedImage image = ImageIO.read(file);

int width = image.getWidth();

int height = image.getHeight();

BufferedImage grayImage = new BufferedImage(width, height, image.getType());

for (int i = 0; i < height; i++) {

for (int j = 0; j < width; j++) {

int color = image.getRGB(j, i);

fiHPzcutNJnal int r = (color >> 16) & 0xff;

final int g = (color >> 8) & 0xff;

final int b = color & 0xff;

int gray = 0;

if (status == 1) {

gray = getBigger(r, g, b);// 最大值法灰度化

} else if (status == 2) {

gray = getSmall(r, g, b);// 最小值法灰度化

} else if (status == 3) {

gray = getAvg(r, g, b);// 均值法灰度化

} else if (status == 4) {

gray = (int) (0.3 * r + 0.59 * g + 0.11 * b);// 加权法灰度化

}

if(gray<=128) {

gray=0;

System.out.print("*");

}else {

gray=255;

System.out.print(" ");

}

}

System.out.println();

}

}

// 比较三个数的大小

public static int getBigger(int x, int y, int z) {

if (x >= y && x >= z) {

return x;

} else if (y >= x && y >= z) {

return y;

} else if (z >= x && z >= y) {

return z;

} else {

return 0;

}

}

// 比较三个数的大小取最小数

public static int getSmall(int x, int y, int z) {

if (x <= y && x <= z) {

return x;

} else if (y &ghttp://t;= x && y >= z) {

return y;

} else if (z >= x && z >= y) {

return z;

} else {

return 0;

}

}

// 均值法

public static int getAvg(int x, int y, int z) {

int avg = (x + y + z) / 3;

return avg;

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Python3执行系统命令的几种方式(Python3怎么运行)
下一篇:Python3使用re模块解析正则表达式(python3 re)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~