java程序 小姐姐喜欢我吗_用java代码让“小姐姐” 们 为你怦然心动!

一年一度的情人节即将来临,你可以单身,但是你必须要付出行动,让你周围的小姐姐怦然心动,为了不影响正常工作,那就在编辑器的输出窗口动点手脚吧。不知道你是不是见过下面这样的情况!

91d0f0373483f858a5eb54e353bfadc2.png

如何让上面这个**的spring图标按我们的想法改变,比如变成下面这样

6e95f634539eee40a77ee4ae25ab60af.png

让我来一步一步,手把手的交给大家(注意重点是手把手)。

1.改变Spring启动时候的图标

这一步太简单了,就是在Spring项目下的resources文件夹下加一个banner.txt即可。

这个时候你可以创建完了文件之后,随便加一些符号尝试一下即可。

261616442d543f94a34b0cee34704d68.png

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

for(int j = 0;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;

}

}

图案自己找,最好是白色背景,可以突出中心图案的,比如:

709f382ca93d699c8844bed56773dfce.png

通过运行上面的代码+这个简单的图案,可以生成一个灰白色的比心图案,如下所示

1cd06d029eae2e16cc2823e61658a884.png

然后将这个复制到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生成了一遍只要下面的手。

既然要引起小姐姐们的注意,不用心怎么行。

这就成了如下的最终效果

161344fe052f051708a2dbd65eb1af30.png

4.结尾

最后迫不及待的传到我们项目的Git上去了,而且每个小姐姐都收到了,不过效果并没有达到,不仅没有怦然心动,还被说成“渣”,还还还还被领导批评是不是太闲了,我说我参加CSDN活动,领导听完我的原因表示很支持。

就写到这吧,我在去加班了...

最后祝大家情人节快乐~

参考文章:

文章来源: blog.csdn.net,作者:zcrazy_cugb,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/z449077880/article/details/113743971

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值