您好,登錄后才能下訂單哦!
這篇“怎么用Java在圖片上添加文字水印效果”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“怎么用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");
代碼效果如下:
如果圖片是一個網絡圖片,我們可以直接獲取它的地址進行下載,相關代碼如下(網絡圖片的名稱和類型,取決于下載者)。
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");
代碼效果如下:
經過上面的描述,我們已經獲取到了原始圖片,接下來我們還需要創建一個畫筆,后面我們寫出的文字樣式,完全則由它來決定。它可以設置顏色,字體大小,字體樣式等。
// 創建畫筆(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(斜體)
下面這行代碼就是添加文字水印的核心代碼。
// 這三個參數分別為你的文字內容,起始位置橫坐標(px),縱坐標位置(px)。 pen.drawString("我是圖片水印", 30, 550);
(3.1)如何確定水印位置 ?
首先,大家要明白,我們在說圖片上的坐標,它一個表示法,具體如下:
那么,我們如何確定我們水印的圖片其實坐標呢?
我們可以將圖片首先保存到本地,然后右鍵單擊,選擇畫圖工具類打開它。
打開后,我們將鼠標光標移動到我們需要添加文字的地方(如紅色箭頭處),則底部就會顯示對應位置的坐標(藍色箭頭處),那么這個坐標我們就可以拿到,然后寫入到程序代碼里了。
經過上面三次操作后,我們的圖片添加文字就已經處理完成了,但他現在還保存在Java對象中,我們需要將他保存到本地,我們才能看得到效果(如:這里我將處理的圖片保存到 test2.png 中)。
// 創建新圖片文件 File file = new File("E:/imgs/test2.png"); // 將處理好的圖片數據寫入到新圖片文件中 FileOutputStream fos = new FileOutputStream(file); ImageIO.write(image, "png", fos);
最后執行代碼,我們看到在原圖片文件夾下,多了一個 test2.png 的圖片。
我們打開 test2.png 圖片后,可以看到文字水印已經添加成功了。
最后將前面解讀的整個源碼放在下面,供大家參考:
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在圖片上添加文字水印效果”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。