一年一度的情人節即將來臨,你可以單身,但是你必須要付出行動,讓你周圍的小姐姐怦然心動,為了不影響正常作業,那就在編輯器的輸出視窗動點手腳吧,不知道你是不是見過下面這樣的情況!

如何讓上面這個**的spring圖示按我們的想法改變,比如變成下面這樣

讓我來一步一步,手把手的交給大家(注意重點是手把手),
1.改變Spring啟動時候的圖示
這一步太簡單了,就是在Spring專案下的resources檔案夾下加一個banner.txt即可,
這個時候你可以創建完了檔案之后,隨便加一些符號嘗試一下即可,

2.自定義圖案
既然知道怎么在啟動的時候修改圖案了,圖案總不能自己畫吧(當然自己畫也行,只能說是走心了),可以找到一個心儀的圖片,然后通過下方程式自動生成符號圖案(以下代碼改編自網路,自己增加了點功能,修改了點內容,雖然已經面目全非,但是想法畢竟是人家的,這個想法很重要的,想要脫單,想法依舊重要),
import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
public class AscPic {
public static void main(String[] args) throws IOException {
String path = "d:/heart3.jpg";//匯入的圖片
String base = "love";//將會用這個字串里的字符填充圖片
BufferedImage image = ImageIO.read(new File(path));//讀入圖片,并用圖片緩沖區物件來接收
float scale = (float) 1;
//獲取縮放后的寬高
int width = (int) (image.getWidth()*scale)*3;
int height = (int) (image.getHeight()*scale);
//呼叫縮放方法獲取縮放后的圖片
Image img = image.getScaledInstance(width , height, Image.SCALE_DEFAULT);
image = toBufferedImage(img);
int[][] imageArray = new int[image.getHeight()][image.getWidth()];
int[] sum = new int[image.getWidth()];
int cnt = 0;
//雙層for回圈,遍歷圖片
for (int y = 0; y < image.getHeight(); y++) {//先豎向遍歷,再橫向遍歷,即一行一行的找,后面也會一行一行的列印
for (int x = 0; x < image.getWidth(); x++) {
int color = image.getRGB(x, y);//圖片緩沖區自帶的方法,可以得到當前點的顏色值,回傳值是int型別
int r=(color>>16)&0xff;
int g=(color>>8)&0xff;
int b=color&0xff;
float gray = 0.299f * r + 0.578f * g + 0.114f * b;//灰度值計算公式,固定比例,無需理解
int index = Math.round(gray * (base.length()) / 255);
if(index>=base.length()) {
imageArray[y][x] = -1;
}else {
imageArray[y][x] = cnt++;
sum[x]+=index;
}
}
}
for(int i = 0;i<image.getHeight();i++){
for(int j = 0;j<image.getWidth();j++){
if(sum[j]==0) continue;
else if(imageArray[i][j]==-1)
System.out.print(" ");//白色的地方打空格,相當于白色背景,這樣圖片輪廓比較明顯
else
System.out.print(base.charAt(imageArray[i][j]%base.length()));//有顏色的地方打字符
}
System.out.println();//一行打完,換行
}
}
public static BufferedImage toBufferedImage(Image image) {
if (image instanceof BufferedImage) {
return (BufferedImage) image;
}
image = new ImageIcon(image).getImage();
boolean hasAlpha = false;
BufferedImage bimage = null;
GraphicsEnvironment ge = GraphicsEnvironment
.getLocalGraphicsEnvironment();
try {
int transparency = Transparency.OPAQUE;
if (hasAlpha) {
transparency = Transparency.BITMASK;
}
GraphicsDevice gs = ge.getDefaultScreenDevice();
GraphicsConfiguration gc = gs.getDefaultConfiguration();
bimage = gc.createCompatibleImage(image.getWidth(null), image
.getHeight(null), transparency);
} catch (HeadlessException e) {
}
if (bimage == null) {
int type = BufferedImage.TYPE_INT_RGB;
if (hasAlpha) {
type = BufferedImage.TYPE_INT_ARGB;
}
bimage = new BufferedImage(image.getWidth(null), image
.getHeight(null), type);
}
Graphics g = bimage.createGraphics();
g.drawImage(image, 0, 0, null);
g.dispose();
return bimage;
}
}
圖案自己找,最好是白色背景,可以突出中心圖案的,比如:

通過運行上面的代碼+這個簡單的圖案,可以生成一個灰白色的比心圖案,如下所示

然后將這個復制到banner.txt檔案夾下即可(上圖為成圖,不要在意里面的細節),
3.加上顏色,加點想法
既然是為了讓小姐姐們怦然心動的,黑白色的怎么能行,必須上點顏色啊,
這就需要在banner.txt中加入一些個陳述句了,特別簡單,如下所示:
${AnsiColor.BRIGHT_RED}
lovelo
velovelovelo velovelovelo
velovelovelovelovelovelovelovelov
elovelovelovelovelovelovelovelove
lovelovelovelovelovelovelovelovel
ovelovelovelovelovelovelovelovelo
velovelovelovelovelovelovel
ovelovelovelovelovelovel
ovelovelovelove
lovelo ${AnsiColor.BRIGHT_YELLOW}
youyouyouyouyou
youyou youyouyou youyou
youyouyouyouyou youyou you
youyou youyouyou youyou youyou
youyou youyouyouyouyouyou youyou
youyou youyou youyouyouyou you
youyou you youyouyou youyou
youyou you youyouyouyou youyou
youyouyouyouyouyouyouyou youyou
youyouyouyouyouyouyou youyou
youyouyouyouyouyou you
youyouyouyouyou youyou
youyouyouyou youyouyouyou
youyouyou youyouyouyouyouyouyou
youyou youyou youyou
最主要的就是${AnsiColor.BRIGHT_YELLOW},這里的YELLOW可以換成任意顏色,
我在做的時候,旁邊的小姐姐給我提了一個想法,心用love,手用you,于是我就用love生成了一遍,只取上面的心,然后又用you生成了一遍只要下面的手,
既然要引起小姐姐們的注意,不用心怎么行,
這就成了如下的最終效果

4.結尾
最后迫不及待的傳到我們專案的Git上去了,而且每個小姐姐都收到了,不過效果并沒有達到,不僅沒有怦然心動,還被說成“渣”,還還還還被領導批評是不是太閑了,我說我參加CSDN活動,領導聽完我的原因表示很支持,
就寫到這吧,我在去加班了...
最后祝大家情人節快樂~
參考文章:
https://blog.csdn.net/qq_32786873/article/details/78202465
https://blog.csdn.net/tonyxiaowai/article/details/92798395
https://www.pianshen.com/article/6567611072/
https://blog.csdn.net/kingxie403/article/details/8561962
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/258172.html
標籤:java
