水印是保護內容和聲明版權的一種便捷方式。通過將水印應用於數字文檔或圖像,您可以避免未經授權的使用或盜竊。據此,本文介紹瞭如何在 Java 應用程序中為圖像自動添加水印功能。特別是,您將學習如何使用 Java 為圖像添加水印。這在您需要向一批 圖像(包括 PNG、JPG 和 BMP)中添加水印時尤其有用。
用於在圖像中添加水印的 Java API - 免費下載
為了給圖像添加水印,我們將使用 Aspose.Imaging for Java。它是一種圖像處理 API,可讓您從 Java 應用程序中處理各種圖像格式。您可以 下載 API 的 JAR 或使用以下配置將其安裝在基於 Maven 的應用程序中。
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-imaging</artifactId>
<version>20.12</version>
<classifier>jdk16</classifier>
</dependency>
在 Java 中為圖像添加水印的步驟
Aspose.Imaging for Java 使圖像加水印變得如此簡單,只需幾行代碼即可完成。以下是用 Java 在圖像中添加水印所需的步驟。
- 從磁盤加載圖像文件。
- 創建水印並設置其屬性。
- 為圖像應用水印。
- 將圖像保存到所需位置。
現在讓我們用 Java 編寫代碼來為圖像添加水印。
在 Java 中為圖像添加水印
以下是使用 Aspose.Imaging 為圖像添加水印的步驟。
- 使用 Image 類加載圖像文件。
- 創建 Graphics 類的對象並使用 Image 對像對其進行初始化。
- 創建並初始化 Font 和 SolidBrush 對象。
- 使用 Graphics.drawString(String s, Font font, Brush brush, float x, float y) 方法添加水印。
- 使用 Image.save() 方法保存圖像。
以下代碼示例顯示瞭如何在 Java 中為圖像添加水印。
// 載入圖片
com.aspose.imaging.Image image = com.aspose.imaging.Image.load("image.png");
// 創建並初始化 Graphics 類的實例
Graphics graphics= new Graphics(image);
// 創建字體實例
Font font = new Font("Times New Roman", 16, FontStyle.Bold);
// 創建 SolidBrush 實例並設置其屬性
SolidBrush brush = new SolidBrush();
brush.setColor(Color.getBlack());
brush.setOpacity(100);
// 在特定點使用 SolidBrush 和 Font 對象繪製字符串
graphics.drawString("Watermark by Aspose.Imaging for Java", font, brush, new PointF(image.getWidth()-100, image.getHeight()-100));
// 保存圖片
image.save("watermarked-image.png");
Java中圖像的對角線水印
在某些情況下,水印會以對角線方式應用於圖像。對於這種情況,Aspose.Imaging for Java 提供了水印轉換選項,您可以使用這些選項旋轉水印。以下是向圖像添加對角線水印的步驟。
- 使用 Image 類加載圖像文件。
- 創建 Graphics 類的對象並使用 Image 對像對其進行初始化。
- 創建並初始化 Font 和 SolidBrush 對象。
- 在 Size 對像中獲取圖像大小。
- 創建一個新的 Matrix 對象並將平移和變換設置為所需的角度。
- 使用 Graphics.setTransform(Matrix) 方法設置水印的變換。
- 使用 Graphics.drawString(String s, Font font, Brush brush, float x, float y) 方法添加水印。
- 使用 Image.save() 方法保存圖像。
以下代碼示例顯示瞭如何在 Java 中向圖像添加對角線水印。
// 載入圖片
com.aspose.imaging.Image image = com.aspose.imaging.Image.load("image.png");
// 創建並初始化 Graphics 類的實例
Graphics graphics= new Graphics(image);
// 創建字體實例
Font font = new Font("Times New Roman", 16, FontStyle.Bold);
// 創建 SolidBrush 實例並設置其屬性
SolidBrush brush = new SolidBrush();
brush.setColor(Color.getBlack());
brush.setOpacity(100);
Size sz = graphics.getImage().getSize();
// 創建一個 Matrix 類的對象進行轉換
Matrix matrix = new Matrix();
// 先平移再旋轉
matrix.translate(sz.getWidth() / 2, sz.getHeight() / 2);
matrix.rotate(-45.0f);
// 通過矩陣設置變換
graphics.setTransform(matrix);
// 在特定點使用 SolidBrush 和 Font 對象繪製字符串
graphics.drawString("Watermark by Aspose.Imaging for Java", font, brush, 0, 0);
// 保存圖片
image.save("watermarked-image.png");
為圖像添加水印的最佳 Java API - 獲取免費許可證
您可以獲得免費的臨時許可證,以便在沒有評估限制的情況下試用 API。
結論
水印用於保護數字文檔和圖像免遭未經授權或非法使用。為了保護數字圖像,本文介紹瞭如何使用 Java 為圖像添加水印。此外,您還了解瞭如何將轉換應用於水印。您可以使用 文檔 探索有關 Java 圖像處理 API 的更多信息。