使用 Java 為圖像添加水印

水印是疊加在照片或圖像上的圖像、徽標、圖案或文本。它可用於識別圖像的創建者。您可以在雲端以編程方式為任何圖像添加水印。本文將重點介紹如何使用 Java 中的 REST API 為圖像添加水印。

本文應涵蓋以下主題:

水印 REST API 和 Java SDK

為了給圖像加水印,我將使用 GroupDocs.Watermark Cloud 的 Java SDK API。它允許您以編程方式添加、刪除、搜索和替換支持格式(如 PDF、Microsoft Word 和 Powerpoint)的圖像和文檔中的水印。目前,它還為 Cloud API 提供 .NET SDK。

通過添加以下 pom.xml 配置,您可以在基於 Maven 的 Java 應用程序中輕鬆使用 GroupDocs.Watermark Cloud。

<repository>
    <id>groupdocs-artifact-repository</id>
    <name>GroupDocs Artifact Repository</name>
    <url>https://repository.groupdocs.cloud/repo</url>
</repository>
<dependency>
	<groupId>com.groupdocs</groupId>
	<artifactId>groupdocs-watermark-cloud</artifactId>
	<version>19.12</version>
	<packaging>jar</packaging>
</dependency>

在開始執行步驟和可用代碼示例之前,請從 dashboard 獲取您的 Client ID 和 Client Secret。在代碼中添加您的 ID 和 Secret,如下所示:

String clientId = "da0c487d-c1c0-45ae-b7bf-43eaf53c5ad5";
String clientSecret = "479db2b01dcb93a3d4d20efb16dea971";
String myStorage = "";

Configuration configuration = new Configuration(clientId, clientSecret);

使用 REST API 向圖像添加文本水印

您可以按照以下簡單步驟為照片或圖像文件添加文本水印:

上傳 JPG 圖片

首先,使用下面給出的代碼示例將 JPG 圖像文件上傳到雲端:

// 接口初始化
FileApi apiInstance = new FileApi(clientId, clientSecret);
File fileStream = new File("C:\\Files\\sample.jpg");

// 創建文件上傳請求
UploadFileRequest request = new UploadFileRequest("sample.jpg", fileStream, myStorage);
FilesUploadResult response = apiInstance.uploadFile(request);

結果,JPG 文件將上傳到 Cloud Storage,並可在儀表板的 文件部分 中找到。

使用 Java 將文本水印添加到 JPG 圖像

您可以按照下面給出的步驟以編程方式向 JPEG 圖像添加文本水印。

  • 創建 WatermarkApi 實例
  • 在FileInfo模型中設置JPEG圖片文件路徑
  • 定義 WatermarkOptions 並設置 FileInfo
  • 定義 TextWatermarkOptions
  • 設置文本、字體系列、字體大小和文本對齊方式
  • 設置水印文字前景色
  • 定義水印位置
  • 定義 WatermarkDetails 並設置 TextWatermarkOptions 和 Position
  • 將 WatermarkDetails 設置為列表
  • 使用 WatermarkOptions 創建 AddRequest
  • 調用WatermarkApi.add()方法獲取結果

以下代碼示例展示瞭如何使用 REST API 將文本作為水印添加到圖像中。

// 接口初始化
WatermarkApi apiInstance = new WatermarkApi(configuration);

// 設置JPG文件路徑
FileInfo fileInfo = new FileInfo();
fileInfo.setFilePath("sample.jpg");
fileInfo.setStorageName(myStorage);

// 定義水印選項
WatermarkOptions options = new WatermarkOptions();
options.setFileInfo(fileInfo);

// 定義文本水印選項
TextWatermarkOptions textWatermarkOptions = new TextWatermarkOptions();
textWatermarkOptions.setText("Copyright© 2021");
textWatermarkOptions.setFontFamilyName("Arial");
textWatermarkOptions.setFontSize(12d);
textWatermarkOptions.setTextAlignment("Center");

// 設置水印文字顏色
Color color = new Color();
color.setName("White");
textWatermarkOptions.setForegroundColor(color);

// 定義水印細節
WatermarkDetails watermarkDetails = new WatermarkDetails();
watermarkDetails.setTextWatermarkOptions(textWatermarkOptions);

// 設置水印位置
Position position = new Position();
position.setX(180.0);
position.setY(450.0);
watermarkDetails.setPosition(position);

// 設置水印細節
List<WatermarkDetails> watermarkDetailsList = new ArrayList<WatermarkDetails>();
watermarkDetailsList.add(watermarkDetails);
options.setWatermarkDetails(watermarkDetailsList);

// 創建添加水印請求
AddRequest request = new AddRequest(options);
WatermarkResult response = apiInstance.add(request);

System.out.println("Resultant file path: " + response.getPath());
為圖片添加文字水印

為圖片添加文字水印

下載更新的圖像

以上代碼示例將帶水印的圖像文件保存在雲端。您可以使用以下代碼示例下載它:

// 接口初始化
FileApi apiInstance = new FileApi(clientId, clientSecret);

// 創建下載文件請求
DownloadFileRequest request = new DownloadFileRequest("watermark/added_watermark/sample_jpg/sample.jpg", "", null);
File response = apiInstance.downloadFile(request);

使用 REST API 將圖像水印添加到圖像

您可以按照以下步驟以編程方式向 JPEG 圖像添加圖像或徽標水印。

  • 創建 WatermarkApi 實例
  • 在FileInfo模型中設置JPEG圖片文件路徑
  • 定義 WatermarkOptions 並設置 FileInfo
  • 定義 ImageWatermarkOptions
  • 將 PNG 圖像的文件路徑設置為水印
  • 定義水印位置
  • 定義 WatermarkDetails 並設置 ImageWatermarkOptions 和 Position
  • 將 WatermarkDetails 設置為列表
  • 使用 WatermarkOptions 創建 AddRequest
  • 調用WatermarkApi.add()方法獲取結果

以下代碼示例顯示瞭如何使用 REST API 將圖像作為水印添加到 JPEG 圖像。請按照前面提到的步驟上傳和下載文件。

// 接口初始化
WatermarkApi apiInstance = new WatermarkApi(configuration);

// 設置JPG文件路徑
FileInfo fileInfo = new FileInfo();
fileInfo.setFilePath("sample.jpg");
fileInfo.setStorageName(myStorage);

// 定義水印選項
WatermarkOptions options = new WatermarkOptions();
options.setFileInfo(fileInfo);

// 定義水印細節
WatermarkDetails watermarkDetails = new WatermarkDetails();

// 定義水印圖像選項
ImageWatermarkOptions imageWatermarkOptions = new ImageWatermarkOptions();
FileInfo image = new FileInfo();
image.setFilePath("sample_watermark.png");
image.setStorageName(myStorage);
imageWatermarkOptions.setImage(image);

// 設置水印位置
Position position = new Position();
position.setX(100.0);
position.setY(450.0);
watermarkDetails.setPosition(position);

// 設置圖像水印選項
watermarkDetails.setImageWatermarkOptions(imageWatermarkOptions);

List<WatermarkDetails> watermarkDetailsList = new ArrayList<WatermarkDetails>();
watermarkDetailsList.add(watermarkDetails);
options.setWatermarkDetails(watermarkDetailsList);

// 創建添加請求
AddRequest request = new AddRequest(options);
WatermarkResult response = apiInstance.add(request);

System.out.println("Resultant file path: " + response.getPath());
為圖片添加圖片水印

為圖片添加圖片水印

在線試用

請嘗試以下使用上述 API 開發的免費在線水印工具。 https://products.groupdocs.app/watermark/jpeg

結論

總之,您已經了解瞭如何向雲端的 JPEG 圖像添加文本或圖像水印。您還學習瞭如何以編程方式將圖像文件上傳到雲端,然後從雲端下載它們。您可以從 文檔 了解有關 GroupDocs.Watermark Cloud API 的更多信息。我們還提供了一個 API 參考 部分,讓您可以直接通過瀏覽器可視化我們的 API 並與之交互。如有任何疑問,請隨時聯繫 支持

也可以看看