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

溫馨提示×

溫馨提示×

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

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

怎么用Java在圖片上添加文字水印效果

發布時間:2022-01-14 14:14:49 來源:億速云 閱讀:401 作者:iii 欄目:開發技術

這篇“怎么用Java在圖片上添加文字水印效果”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“怎么用Java在圖片上添加文字水印效果”文章吧。

    【1】獲取原圖片對象

    首先,第一步,肯定是要讓我們的程序,拿到需要處理的圖片。

    我們程序獲取圖片的方式,通常有兩種,一種是通過下載到本地,從本地讀取;另外一種就是通過網絡地址進行獲取。

    (1.1)讀取本地圖片

    怎么用Java在圖片上添加文字水印效果

    比如,我們將圖片下載到了我們計算機本地(E:\imgs目錄下),那么我們直接在main函數中,通過下面這段代碼,就可以獲取到圖片對象。

    // 讀取圖片文件
    File file = new File("E:/imgs/test.png");
    System.out.println("圖片名稱:" + file.getName());
    System.out.println("圖片大小:" + file.length() / 1024 + " kb");
    // 將文件對象轉化為圖片對象
    BufferedImage image = ImageIO.read(file);
    System.out.println("圖片寬度:" + image.getWidth() + " px");
    System.out.println("圖片高度:" + image.getHeight() + " px");

     代碼效果如下:

    怎么用Java在圖片上添加文字水印效果

    (1.2)讀取網絡圖片

    如果圖片是一個網絡圖片,我們可以直接獲取它的地址進行下載,相關代碼如下(網絡圖片的名稱和類型,取決于下載者)。

    URL url = new URL("https://zyq2022.oss-cn-chengdu.aliyuncs.com/test.png");
    BufferedImage image = ImageIO.read(url.openStream());
    System.out.println("圖片寬度:" + image.getWidth() + " px");
    System.out.println("圖片高度:" + image.getHeight() + " px");

    代碼效果如下:

    怎么用Java在圖片上添加文字水印效果

    【2】創建畫筆

    經過上面的描述,我們已經獲取到了原始圖片,接下來我們還需要創建一個畫筆,后面我們寫出的文字樣式,完全則由它來決定。它可以設置顏色,字體大小,字體樣式等。

    // 創建畫筆(image為上一步的圖片對象)
    Graphics2D pen = image.createGraphics();
    // 設置畫筆顏色為白色
    pen.setColor(Color.WHITE);
    // 設置畫筆字體樣式為微軟雅黑,斜體,文字大小為20px
    pen.setFont(new Font("微軟雅黑", Font.ITALIC, 20));

    相關說明:

    (1) pen.setColor(Color.WHITE); 

    這行代碼的意思是將畫筆顏色設置為白色。

    其他顏色還有:WHITE(白色)、LIGHT_GRAY(淺灰色)、GRAY(灰色)、DARK_GRAY(深灰色)、BLACK(黑色)、RED(紅色)、PINK(粉紅色)、ORANGE(橘黃色)、YELLOW(黃色)、GREEN(綠色)、MAGENTA(紫紅色)、CYAN(青色)、BLUE(藍色)

    如果上面顏色都不滿足你,或者你還想設置下字體透明度,你可以改為如下格式:

    pen.setColor(new Color(179, 250, 233, 100));

    這里的四個參數分別為 RGBA(不懂RGBA的點這里),四個參數的范圍均是0-255;

    (2)pen.setFont(new Font("微軟雅黑", Font.ITALIC, 20));

    Font.PLAIN(正常),Font.BOLD(粗體),Font.ITALIC(斜體)

    【3】添加文字水印

    下面這行代碼就是添加文字水印的核心代碼。

    // 這三個參數分別為你的文字內容,起始位置橫坐標(px),縱坐標位置(px)。
    pen.drawString("我是圖片水印", 30, 550);

    (3.1)如何確定水印位置 ?

    首先,大家要明白,我們在說圖片上的坐標,它一個表示法,具體如下:

    怎么用Java在圖片上添加文字水印效果

    那么,我們如何確定我們水印的圖片其實坐標呢?

    我們可以將圖片首先保存到本地,然后右鍵單擊,選擇畫圖工具類打開它。

    怎么用Java在圖片上添加文字水印效果

     打開后,我們將鼠標光標移動到我們需要添加文字的地方(如紅色箭頭處),則底部就會顯示對應位置的坐標(藍色箭頭處),那么這個坐標我們就可以拿到,然后寫入到程序代碼里了。

    怎么用Java在圖片上添加文字水印效果

    【4】獲取處理圖片

    經過上面三次操作后,我們的圖片添加文字就已經處理完成了,但他現在還保存在Java對象中,我們需要將他保存到本地,我們才能看得到效果(如:這里我將處理的圖片保存到 test2.png 中)。

    // 創建新圖片文件
    File file = new File("E:/imgs/test2.png");
    // 將處理好的圖片數據寫入到新圖片文件中
    FileOutputStream fos = new FileOutputStream(file);
    ImageIO.write(image, "png", fos);

    最后執行代碼,我們看到在原圖片文件夾下,多了一個 test2.png 的圖片。

    怎么用Java在圖片上添加文字水印效果

     我們打開 test2.png 圖片后,可以看到文字水印已經添加成功了。

    怎么用Java在圖片上添加文字水印效果

    【5】源代碼

    最后將前面解讀的整個源碼放在下面,供大家參考:

    package com.zyq.util;
     
    import java.awt.Color;
    import java.awt.Font;
    import java.awt.Graphics2D;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.net.URL;
     
    import javax.imageio.ImageIO;
     
    public class ImgTest {
     
        public static void main(String[] args) throws IOException {
            // 讀取本地圖片文件
            // File file = new File("E:/imgs/test.png");
            // System.out.println("圖片名稱:" + file.getName());
            // System.out.println("圖片大小:" + file.length() / 1024 + " kb");
            // 將文件對象轉化為圖片對象
            // BufferedImage image = ImageIO.read(file);
            // 獲取網絡圖片
            URL url = new URL("https://zyq2022.oss-cn-chengdu.aliyuncs.com/test.png");
            BufferedImage image = ImageIO.read(url.openStream());
            // 創建畫筆
            Graphics2D pen = image.createGraphics();
            // 設置畫筆顏色為白色
            // pen.setColor(Color.WHITE);
            pen.setColor(new Color(179, 250, 233, 200));
            // 設置畫筆字體樣式為微軟雅黑,斜體,文字大小為20px
            pen.setFont(new Font("微軟雅黑", Font.ITALIC, 20));
            // 寫上水印文字和坐標
            pen.drawString("我是圖片水印", 30, 550);
            // 創建新圖片文件
            File file = new File("E:/imgs/test2.png");
            // 將處理好的圖片數據寫入到新圖片文件中
            FileOutputStream fos = new FileOutputStream(file);
            ImageIO.write(image, "png", fos);
        }
    }

    以上就是關于“怎么用Java在圖片上添加文字水印效果”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

    向AI問一下細節

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

    AI

    石河子市| 寻乌县| 南靖县| 云龙县| 洛隆县| 余庆县| 南漳县| 东乌珠穆沁旗| 龙游县| 乌审旗| 精河县| 平南县| 北安市| 昌都县| 富锦市| 克拉玛依市| 淮滨县| 林西县| 峨眉山市| 阳城县| 淮安市| 台前县| 象州县| 开远市| 类乌齐县| 广灵县| 红桥区| 阿坝| 峨山| 泸西县| 祁东县| 东丰县| 垣曲县| 阳山县| 平邑县| 德惠市| 琼结县| 乡宁县| 始兴县| 宣化县| 阳信县|