# watermark4J
**Repository Path**: java-lab/watermark4-j
## Basic Information
- **Project Name**: watermark4J
- **Description**: 🚀基于 Java 的图片水印工具
- **Primary Language**: Java
- **License**: GPL-3.0
- **Default Branch**: master
- **Homepage**: https://gitee.com/PyCVer
- **GVP Project**: No
## Statistics
- **Stars**: 4
- **Forks**: 1
- **Created**: 2023-08-05
- **Last Updated**: 2025-02-08
## Categories & Tags
**Categories**: Uncategorized
**Tags**: 图片水印, Java, 图像处理, 水印
## README
基于 Java 的图片水印工具
## 🚀 作者简介
曾逸夫,从事人工智能研究与开发;主研领域:计算机视觉;[YOLOv8官方开源项目代码贡献人](https://github.com/ultralytics/ultralytics/graphs/contributors);[YOLOv5官方开源项目代码贡献人](https://github.com/ultralytics/yolov5/graphs/contributors)
❤️ Github:https://github.com/Zengyf-CVer
🚀更新走势
- `2023-09-29` **⚡ [watermark4J v0.2.3](https://gitee.com/java-lab/watermark4-j/releases/tag/v0.2.3)正式上线**
- `2023-08-16` **⚡ [watermark4J v0.2.2](https://gitee.com/java-lab/watermark4-j/releases/tag/v0.2.2)正式上线**
- `2023-08-15` **⚡ [watermark4J v0.2](https://gitee.com/java-lab/watermark4-j/releases/tag/v0.2)正式上线**
- `2023-08-06` **⚡ [watermark4J v0.1](https://gitee.com/java-lab/watermark4-j/releases/tag/v0.1)正式上线**
### 📌 项目整体流程
### 📌 项目示例
💡项目结构
```
.
├── watermark4-j # 项目名称
│ ├── watermark4j_mvn # maven项目
│ ├── watermark4j # 项目
│ │ ├── src # 源文件
│ │ │ ├── imgs # 图片
│ │ │ ├── utils # 工具类
│ │ │ │ ├── Watermark.java # 水印文件
│ │ │ ├── MainText.java # 文字水印主函数
│ │ │ ├── MainImg.java # 图片水印主函数
│ │ │ └── MainBatch.java # 批量水印主函数
│ │ └── .gitignore # gitignore文件
│ └── README.md # 项目说明
```
🔥安装教程
#### 💡 安装JDK11
#### 💡 安装IDEA
#### 💡 创建Maven项目
❤️如果采用`Maven`架构,请使用`watermark4j_mvn`
#### 💡 支持图片格式
```
jpg
jpeg
png
tif(遥感图片格式)
```
⚡使用教程
#### 💡 文字水印模式
运行`watermark4j:MainText.java`文件:
```java
import java.io.IOException;
import utils.Watermark;
/*
项目:watermark4J v0.2.3
创建人:曾逸夫
创建时间:2023年9月29日
*/
public class MainText {
public static void main(String[] args) throws IOException {
// --------------- 文字水印 ---------------
String imgPath = "src\\imgs\\Millenial-at-work.jpg"; // 原图片
String imgWMSavePath = "src\\imgs\\wm_text_imgs.png"; // 水印图片
String watermarkContent = "这是一个水印"; // 文字水印内容
String WMLoadMode = "local"; // 水印图片加载模式:local or url
// String WMLoadMode = "https://gitee.com/CV_Lab/gradio-yolov8-det/raw/master/img_examples/Millenial-at-work.jpg";
String WMDistMode = "tiling"; // 水印分布模式:tiling or single
int degree = 45; // 水印角度:0 or other degree
double delta = 1.0; // 水印稀疏因子1.0-2.0
// 加水印.
Watermark.addWatermark(imgPath, imgWMSavePath, watermarkContent, WMLoadMode, WMDistMode, degree, delta);
}
}
```
#### 示例结果图
#### 💡 图片水印模式
运行`watermark4j:MainImg.java`文件:
```java
import java.io.IOException;
import utils.Watermark;
/*
项目:watermark4J v0.2.3
创建人:曾逸夫
创建时间:2023年9月29日
*/
public class MainImg {
public static void main(String[] args) throws IOException {
// --------------- 文字水印 ---------------
String imgPath = "src\\imgs\\Millenial-at-work.jpg"; // 原图片
String imgWMSavePath = "src\\imgs\\wm_img_imgs.png"; // 水印图片
String watermarkImgContent = "src\\imgs\\watermark_test_img.png"; // 图片水印
String WMLoadMode = "local"; // 水印图片加载模式:local or url
String WMDistMode = "tiling"; // 水印分布模式:tiling or single
int degree = 45; // 水印角度:0 or other degree
// 加水印
Watermark.addImgTypeWatermark(imgPath, imgWMSavePath, watermarkImgContent, WMLoadMode, WMDistMode, degree);
}
}
```
#### 示例结果图
#### 💡 批量水印模式
运行`watermark4j:MainBatch.java`文件:
```java
import utils.Watermark;
import java.io.IOException;
/*
项目:watermark4J v0.2.3
创建人:曾逸夫
创建时间:2023年9月29日
*/
public class MainTextBatch {
public static void main(String[] args) throws IOException {
// --------------- 文字水印 ---------------
String batchMode = "text"; // text or img
String imgPath = "D:\\samples"; // 原图片输入路径
String imgWMSavePath = "D:\\samples\\out"; // 水印图片输出路径
String watermarkContent = "这是一个水印"; // 文字水印内容
String watermarkImgContent = "src\\imgs\\watermark_test_img.png"; // 图片水印
String WMLoadMode = "local"; // 水印图片加载模式:local or url
String WMDistMode = "tiling"; // 水印分布模式:tiling or single
int degree = 45; // 水印角度:0 or other degree
double delta = 1.0; // 水印稀疏因子1.0-2.0
// 加水印
Watermark.addBatchWatermark(batchMode, imgPath, imgWMSavePath, watermarkContent, WMLoadMode, WMDistMode, degree, delta);
}
}
```
#### 💡水印稀疏因子
🔥 调节水印稀疏因子数值,可以改变平铺状态下,水印分布的稀疏程度。具体效果如下图所示。(点击图片,可查看大图)
| 稀疏因子 | 效果图 |
| :-----------: | :----------------------------------------------------------: |
| **delta-1.0** |
|
| **delta-1.2** |
|
| **delta-1.5** |
|
| **delta-1.8** |
|
| **delta-2.0** |
|