水印是叠加在照片或图像上的图像、徽标、图案或文本。它可用于识别图像的创建者。您可以在云端以编程方式为任何图像添加水印。本文将重点介绍如何使用 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 向图像添加文本水印
您可以按照以下简单步骤为照片或图像文件添加文本水印:
- 上传the JPG image to the Cloud
- 使用Java为图像添加文本水印
- 下载the watermarked image
上传 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 并与之交互。如有任何疑问,请随时联系 支持。