中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用java制作比心圖案

發布時間:2023-04-20 09:48:23 來源:億速云 閱讀:111 作者:iii 欄目:編程語言

這篇文章主要介紹“如何使用java制作比心圖案”,在日常操作中,相信很多人在如何使用java制作比心圖案問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”如何使用java制作比心圖案”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

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;
    }
}

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

如何使用java制作比心圖案

到此,關于“如何使用java制作比心圖案”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

军事| 乡宁县| 丽水市| 即墨市| 二连浩特市| 北票市| 黔西县| 金溪县| 东方市| 儋州市| 隆德县| 新野县| 临沧市| 三河市| 当雄县| 前郭尔| 佳木斯市| 上思县| 江油市| 承德市| 厦门市| 麟游县| 富平县| 都匀市| 呈贡县| 县级市| 甘孜县| 安陆市| 淮北市| 本溪| 灵山县| 北宁市| 邮箱| 凌云县| 灵石县| 景宁| 临颍县| 旅游| 定南县| 息烽县| 徐水县|