如何在java中制作比心图案?

本教程操作环境:windows7系统、java10版,DELL G3电脑。

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

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

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

2、自定义图案

可以找到一个心仪的图片,然后通过下方程序自动生成符号图案。

importjavax.imageio.ImageIO;
importjavax.swing.*;
importjava.awt.*;
importjava.awt.image.BufferedImage;
importjava.io.File;
importjava.io.IOException;
publicclassAscPic{
publicstaticvoidmain(String[]args)throwsIOException{
Stringpath="d:/heart3.jpg";//导入的图片
Stringbase="love";//将会用这个字符串里的字符填充图片
BufferedImageimage=ImageIO.read(newFile(path));//读入图片,并用图片缓冲区对象来接收
floatscale=(float)1;
//获取缩放后的宽高
intwidth=(int)(image.getWidth()*scale)*3;
intheight=(int)(image.getHeight()*scale);
//调用缩放方法获取缩放后的图片
Imageimg=image.getScaledInstance(width,height,Image.SCALE_DEFAULT);
image=toBufferedImage(img);
int[][]imageArray=newint[image.getHeight()][image.getWidth()];
int[]sum=newint[image.getWidth()];
intcnt=0;
//双层for循环,遍历图片
for(inty=0;y<image.getHeight();y++){//先竖向遍历,再横向遍历,即一行一行的找,后面也会一行一行的打印
for(intx=0;x<image.getWidth();x++){
intcolor=image.getRGB(x,y);//图片缓冲区自带的方法,可以得到当前点的颜色值,返回值是int类型
intr=(color>>16)&0xff;
intg=(color>>8)&0xff;
intb=color&0xff;
floatgray=0.299f*r+0.578f*g+0.114f*b;//灰度值计算公式,固定比例,无需理解
intindex=Math.round(gray*(base.length())/255);
if(index>=base.length()){
imageArray[y][x]=-1;
}else{
imageArray[y][x]=cnt++;
sum[x]+=index;
}
}
}
for(inti=0;i<image.getHeight();i++){
for(intj=0;j<image.getWidth();j++){
if(sum[j]==0)continue;
elseif(imageArray[i][j]==-1)
System.out.print("");//白色的地方打空格,相当于白色背景,这样图片轮廓比较明显
else
System.out.print(base.charAt(imageArray[i][j]%base.length()));//有颜色的地方打字符
}
System.out.println();//一行打完,换行
}
}
publicstaticBufferedImagetoBufferedImage(Imageimage){
if(imageinstanceofBufferedImage){
return(BufferedImage)image;
}
image=newImageIcon(image).getImage();
booleanhasAlpha=false;
BufferedImagebimage=null;
GraphicsEnvironmentge=GraphicsEnvironment
.getLocalGraphicsEnvironment();
try{
inttransparency=Transparency.OPAQUE;
if(hasAlpha){
transparency=Transparency.BITMASK;
}
GraphicsDevicegs=ge.getDefaultScreenDevice();
GraphicsConfigurationgc=gs.getDefaultConfiguration();
bimage=gc.createCompatibleImage(image.getWidth(null),image
.getHeight(null),transparency);
}catch(HeadlessExceptione){
}
if(bimage==null){
inttype=BufferedImage.TYPE_INT_RGB;
if(hasAlpha){
type=BufferedImage.TYPE_INT_ARGB;
}
bimage=newBufferedImage(image.getWidth(null),image
.getHeight(null),type);
}
Graphicsg=bimage.createGraphics();
g.drawImage(image,0,0,null);
g.dispose();
returnbimage;
}
}

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

原文来自:https://www.py.cn
© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容