java使用字符畫(huà)一個(gè)海綿寶寶
本文實(shí)例為大家分享了java使用字符畫(huà)一個(gè)海綿寶寶的具體代碼,供大家參考,具體內(nèi)容如下
用字符畫(huà)一個(gè)海綿寶寶
用" “和”*"兩個(gè)字符畫(huà)出一個(gè)海綿寶寶,效果如下:
emm……效果可能不是很好,原圖是這樣的:
下面展示我的代碼
代碼
提示:代碼僅供參考,大部分來(lái)自于網(wǎng)絡(luò)
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 { ?? ??? ?//需要使用哪種灰度化方式,就去掉那一行的注釋"http://"。 ?? ??? ?//grayImage(1,"E:\\image.jpg");//最大值法灰度化? ?? ??? ?//grayImage(2,"E:\\image.jpg");//最小值法灰度化? ?? ??? ?//grayImage(3,"E:\\image.jpg");//平均值法灰度化 ?? ??? ?//grayImage(4,"E:\\image.jpg");//加權(quán)法灰度化? ?? ? ?} ?? ?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); ?? ??? ??? ??? ?final 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);// 加權(quán)法灰度化 ?? ??? ??? ??? ?} ?? ??? ??? ??? ?if(gray<=128) { ?? ??? ??? ??? ??? ?gray=0; ?? ??? ??? ??? ??? ?System.out.print("*"); ?? ??? ??? ??? ?}else { ?? ??? ??? ??? ??? ?gray=255; ?? ??? ??? ??? ??? ?System.out.print(" "); ?? ??? ??? ??? ?} ?? ??? ??? ?} ?? ??? ??? ?System.out.println(); ?? ??? ?} ?? ?} ?? ?// 比較三個(gè)數(shù)的大小 ?? ?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; ?? ??? ?} ?? ?} ?? ?// 比較三個(gè)數(shù)的大小取最小數(shù) ?? ?public static int getSmall(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 getAvg(int x, int y, int z) { ?? ??? ?int avg = (x + y + z) / 3; ?? ??? ?return avg; ?? ?} }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
劍指Offer之Java算法習(xí)題精講字符串操作與數(shù)組及二叉搜索樹(shù)
跟著思路走,之后從簡(jiǎn)單題入手,反復(fù)去看,做過(guò)之后可能會(huì)忘記,之后再做一次,記不住就反復(fù)做,反復(fù)尋求思路和規(guī)律,慢慢積累就會(huì)發(fā)現(xiàn)質(zhì)的變化2022-03-03Spring的連接數(shù)據(jù)庫(kù)以及JDBC模板(實(shí)例講解)
下面小編就為大家?guī)?lái)一篇Spring的連接數(shù)據(jù)庫(kù)以及JDBC模板(實(shí)例講解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-10-10Spring mvc攔截器實(shí)現(xiàn)原理解析
這篇文章主要介紹了Spring mvc攔截器實(shí)現(xiàn)原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03Java中的ReentrantLock實(shí)現(xiàn)原理及代碼演示
這篇文章主要介紹了Java中的ReentrantLock實(shí)現(xiàn)原理及代碼演示,非公平鎖 如果已經(jīng)進(jìn)入隊(duì)列,鏈表里面的線程是先進(jìn)先出,如果已經(jīng)釋放了鎖,在搶占鎖時(shí),鏈表里面的頭結(jié)點(diǎn)和還沒(méi)有入隊(duì)列的線程搶鎖,需要的朋友可以參考下2024-01-01Java根據(jù)正整數(shù)的位數(shù)并逆序打印出各位數(shù)字
給一個(gè)不多于5位的正整數(shù),要求:一、求它是幾位數(shù),二、逆序打印出各位數(shù)字,需要的朋友可以參考下2017-02-02Java Swing組件文件選擇器JFileChooser簡(jiǎn)單用法示例
這篇文章主要介紹了Java Swing組件文件選擇器JFileChooser簡(jiǎn)單用法,結(jié)合實(shí)例形式分析了Swing組件中的文件選擇器JFileChooser的簡(jiǎn)單使用方法,需要的朋友可以參考下2017-11-11java開(kāi)發(fā)工作中對(duì)InheritableThreadLocal使用思考
這篇文章主要為大家介紹了java開(kāi)發(fā)工作中對(duì)InheritableThreadLocal使用思考詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11