mirror of
https://github.com/Geckon01/Watermark.Net.git
synced 2026-07-11 15:01:55 +00:00
Added ru and zh readme
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
# Watermark.Net
|
# Watermark.Net
|
||||||
|
|
||||||
[](https://github.com/Geckon01/Watermark.Net/actions/workflows/dotnet.yml)
|
[](https://github.com/Geckon01/Watermark.Net/actions/workflows/dotnet.yml)
|
||||||

|

|
||||||

|

|
||||||
@@ -6,6 +7,11 @@
|
|||||||

|

|
||||||
[](https://app.codacy.com/gh/Geckon01/Watermark.Net/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)
|
[](https://app.codacy.com/gh/Geckon01/Watermark.Net/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)
|
||||||
|
|
||||||
|
### Other languages
|
||||||
|
- 🇺🇸 [English](docs/README.md)
|
||||||
|
- 🇷🇺 [Русский](docs/README.ru.md)
|
||||||
|
- 🇨🇳 [简体中文](docs/README.zh-CN.md)
|
||||||
|
|
||||||
**Watermark.Net** is an open-source .NET library for programmatically adding text and image watermarks to images. Built on [SixLabors.ImageSharp](https://github.com/SixLabors/ImageSharp), it provides a clean, extensible API for all your watermarking needs — from a single file to entire directory batches. Whether you need to protect copyrights, brand your media, or mark drafts, Watermark.Net makes image watermarking in C# simple and efficient.
|
**Watermark.Net** is an open-source .NET library for programmatically adding text and image watermarks to images. Built on [SixLabors.ImageSharp](https://github.com/SixLabors/ImageSharp), it provides a clean, extensible API for all your watermarking needs — from a single file to entire directory batches. Whether you need to protect copyrights, brand your media, or mark drafts, Watermark.Net makes image watermarking in C# simple and efficient.
|
||||||
|
|
||||||
### Features
|
### Features
|
||||||
|
|||||||
@@ -0,0 +1,313 @@
|
|||||||
|
# Watermark.Net
|
||||||
|
|
||||||
|
[](https://github.com/Geckon01/Watermark.Net/actions/workflows/dotnet.yml)
|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|
[](https://app.codacy.com/gh/Geckon01/Watermark.Net/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)
|
||||||
|
|
||||||
|
**Watermark.Net** — современная кроссплатформенная библиотека для .NET, предназначенная для добавления текстовых и графических watermark’ов к изображениям с использованием C#.
|
||||||
|
|
||||||
|
Библиотека построена на базе SixLabors.ImageSharp и предоставляет чистый и расширяемый API для:
|
||||||
|
|
||||||
|
- добавления watermark’ов к изображениям в .NET
|
||||||
|
- пакетной обработки изображений
|
||||||
|
- защиты авторских прав
|
||||||
|
- наложения логотипов
|
||||||
|
- автоматизации брендинга
|
||||||
|
- генерации draft/staging изображений
|
||||||
|
|
||||||
|
Подходит для ASP.NET приложений, media pipeline’ов, SaaS-платформ, desktop-приложений, automation scripts и backend image processing сервисов.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Почему Watermark.Net?
|
||||||
|
|
||||||
|
- ✅ Современная архитектура на .NET 8+
|
||||||
|
- ✅ Полная кроссплатформенность (Windows, Linux, macOS)
|
||||||
|
- ✅ Основана на ImageSharp
|
||||||
|
- ✅ Простой и чистый API
|
||||||
|
- ✅ Пакетная обработка директорий
|
||||||
|
- ✅ Поддержка текстовых и графических watermark’ов
|
||||||
|
- ✅ Режим tiled/repeated watermark
|
||||||
|
- ✅ Поддержка Dependency Injection
|
||||||
|
- ✅ Open-source и лицензия MIT
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Возможности
|
||||||
|
|
||||||
|
## Текстовые watermark’и
|
||||||
|
|
||||||
|
Поддерживается:
|
||||||
|
|
||||||
|
- пользовательские шрифты
|
||||||
|
- настройка размера текста
|
||||||
|
- поворот
|
||||||
|
- прозрачность
|
||||||
|
- отступы
|
||||||
|
- система позиционирования 3x3
|
||||||
|
- tiled/pattern режим
|
||||||
|
|
||||||
|
## Графические watermark’и
|
||||||
|
|
||||||
|
Наложение логотипов и PNG:
|
||||||
|
|
||||||
|
- поддержка прозрачности PNG
|
||||||
|
- настройка opacity
|
||||||
|
- масштабирование
|
||||||
|
- позиционирование
|
||||||
|
- tiled/repeated режим
|
||||||
|
|
||||||
|
## Пакетная обработка
|
||||||
|
|
||||||
|
Обработка целых папок изображений одним вызовом метода.
|
||||||
|
|
||||||
|
Поддерживаемые форматы:
|
||||||
|
|
||||||
|
- JPEG
|
||||||
|
- PNG
|
||||||
|
- BMP
|
||||||
|
- GIF
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Установка
|
||||||
|
|
||||||
|
Установка через NuGet:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
dotnet add package Watermark.Net
|
||||||
|
```
|
||||||
|
|
||||||
|
Или через Package Manager:
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
Install-Package Watermark.Net
|
||||||
|
```
|
||||||
|
|
||||||
|
Требования:
|
||||||
|
|
||||||
|
- .NET 8 или новее
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Быстрый старт
|
||||||
|
|
||||||
|
## Добавление текстового watermark
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
using SixLabors.Fonts;
|
||||||
|
using SixLabors.ImageSharp;
|
||||||
|
using WatermarkNet.Core;
|
||||||
|
using WatermarkNet.Enums;
|
||||||
|
using WatermarkNet.Models.Definitions;
|
||||||
|
|
||||||
|
var pipeline = new WatermarkPipeline(new FileManager(), new ImageRenderer());
|
||||||
|
|
||||||
|
var watermark = new TextWatermark
|
||||||
|
{
|
||||||
|
Text = "CONFIDENTIAL",
|
||||||
|
Font = SystemFonts.CreateFont("Arial", 36),
|
||||||
|
|
||||||
|
Layout =
|
||||||
|
{
|
||||||
|
Position = ImagePosition.BottomRight,
|
||||||
|
Scale = 0.5f
|
||||||
|
},
|
||||||
|
|
||||||
|
Style =
|
||||||
|
{
|
||||||
|
Color = Color.White,
|
||||||
|
Opacity = 0.8f
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
ResultImage result = pipeline.ProcessImage(
|
||||||
|
"input.jpg",
|
||||||
|
"output",
|
||||||
|
watermark
|
||||||
|
);
|
||||||
|
|
||||||
|
Console.WriteLine($"Saved to: {result.Path}");
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Добавление графического watermark
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
using SixLabors.ImageSharp;
|
||||||
|
using WatermarkNet.Core;
|
||||||
|
using WatermarkNet.Enums;
|
||||||
|
using WatermarkNet.Models.Definitions;
|
||||||
|
|
||||||
|
var pipeline = new WatermarkPipeline(new FileManager(), new ImageRenderer());
|
||||||
|
|
||||||
|
var watermark = new ImageWatermark
|
||||||
|
{
|
||||||
|
ImagePath = "logo.png",
|
||||||
|
|
||||||
|
Layout =
|
||||||
|
{
|
||||||
|
Position = ImagePosition.Center,
|
||||||
|
Scale = 0.3f
|
||||||
|
},
|
||||||
|
|
||||||
|
Style =
|
||||||
|
{
|
||||||
|
Opacity = 0.7f,
|
||||||
|
Pave = true
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
List<ResultImage> results = pipeline.ProcessDirectory(
|
||||||
|
"images",
|
||||||
|
"output",
|
||||||
|
watermark
|
||||||
|
);
|
||||||
|
|
||||||
|
Console.WriteLine($"Processed {results.Count} images");
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Типичные сценарии использования
|
||||||
|
|
||||||
|
Watermark.Net часто используется для:
|
||||||
|
|
||||||
|
- защиты фотографий watermark’ами
|
||||||
|
- брендирования изображений интернет-магазинов
|
||||||
|
- SaaS image pipeline’ов
|
||||||
|
- маркировки AI-generated изображений
|
||||||
|
- CMS систем
|
||||||
|
- автоматизации соцсетей
|
||||||
|
- backend image processing сервисов
|
||||||
|
- ASP.NET image service’ов
|
||||||
|
- массовой обработки изображений
|
||||||
|
- внутренних документов и черновиков
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Архитектура
|
||||||
|
|
||||||
|
Watermark.Net использует lightweight pipeline architecture с чётким разделением ответственности.
|
||||||
|
|
||||||
|
```text
|
||||||
|
┌──────────────────────────────────────┐
|
||||||
|
│ WatermarkPipeline │
|
||||||
|
│ Основной orchestration layer │
|
||||||
|
├──────────────────────────────────────┤
|
||||||
|
│ IFileManager / FileManager │
|
||||||
|
│ Абстракция файловой системы │
|
||||||
|
├──────────────────────────────────────┤
|
||||||
|
│ ImageRenderer │
|
||||||
|
│ Pure rendering engine │
|
||||||
|
└──────────────────────────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Типы watermark’ов
|
||||||
|
|
||||||
|
| Тип | Описание |
|
||||||
|
|---|---|
|
||||||
|
| `TextWatermark` | Конфигурация текстового watermark |
|
||||||
|
| `ImageWatermark` | Конфигурация watermark-изображения |
|
||||||
|
| `ResultImage` | Модель результата обработки |
|
||||||
|
| `IWatermarkDefinition` | Базовая абстракция watermark |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Система позиционирования
|
||||||
|
|
||||||
|
Поддерживается 9 встроенных позиций:
|
||||||
|
|
||||||
|
- TopLeft
|
||||||
|
- TopCenter
|
||||||
|
- TopRight
|
||||||
|
- CenterLeft
|
||||||
|
- Center
|
||||||
|
- CenterRight
|
||||||
|
- BottomLeft
|
||||||
|
- BottomCenter
|
||||||
|
- BottomRight
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Продвинутое использование
|
||||||
|
|
||||||
|
## Tiled / Pave режим
|
||||||
|
|
||||||
|
Повторяет watermark по всей поверхности изображения:
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
var watermark = new TextWatermark
|
||||||
|
{
|
||||||
|
Text = "DRAFT",
|
||||||
|
Font = SystemFonts.CreateFont("Arial", 36),
|
||||||
|
|
||||||
|
Style =
|
||||||
|
{
|
||||||
|
Color = Color.Red,
|
||||||
|
Pave = true
|
||||||
|
},
|
||||||
|
|
||||||
|
Layout =
|
||||||
|
{
|
||||||
|
Scale = 0.3f
|
||||||
|
}
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Rotation & Padding
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
var watermark = new TextWatermark
|
||||||
|
{
|
||||||
|
Text = "CONFIDENTIAL",
|
||||||
|
Font = SystemFonts.CreateFont("Arial", 24),
|
||||||
|
|
||||||
|
Layout =
|
||||||
|
{
|
||||||
|
Position = ImagePosition.TopLeft,
|
||||||
|
RotateAngle = 45,
|
||||||
|
Padding = 20
|
||||||
|
}
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Dependency Injection
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
services.AddSingleton<IFileManager, FileManager>();
|
||||||
|
|
||||||
|
services.AddSingleton<ImageRenderer>();
|
||||||
|
|
||||||
|
services.AddTransient<WatermarkPipeline>();
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Contributing
|
||||||
|
|
||||||
|
Pull Request’ы и contributions приветствуются.
|
||||||
|
|
||||||
|
Для участия:
|
||||||
|
|
||||||
|
1. Сделайте fork репозитория
|
||||||
|
2. Создайте feature branch
|
||||||
|
3. Добавьте тесты
|
||||||
|
4. Запустите test suite
|
||||||
|
5. Откройте Pull Request
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# License
|
||||||
|
|
||||||
|
Проект распространяется под лицензией MIT.
|
||||||
@@ -0,0 +1,134 @@
|
|||||||
|
# Watermark.Net
|
||||||
|
|
||||||
|
[](https://github.com/Geckon01/Watermark.Net/actions/workflows/dotnet.yml)
|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|
[](https://app.codacy.com/gh/Geckon01/Watermark.Net/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)
|
||||||
|
|
||||||
|
**Watermark.Net** 是一个现代化、跨平台的 .NET 图像水印库,可使用 C# 为图片和图形添加文字或图片水印。
|
||||||
|
|
||||||
|
该项目基于 SixLabors.ImageSharp 构建,并提供简洁且可扩展的 API,适用于:
|
||||||
|
|
||||||
|
- .NET 图像水印处理
|
||||||
|
- 批量图片处理
|
||||||
|
- 图片版权保护
|
||||||
|
- Logo 覆盖
|
||||||
|
- 品牌自动化
|
||||||
|
- 草稿/测试图片生成
|
||||||
|
|
||||||
|
适用于 ASP.NET 应用、媒体处理流水线、SaaS 平台、桌面工具、自动化脚本以及后端图像处理服务。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 为什么选择 Watermark.Net?
|
||||||
|
|
||||||
|
- ✅ 基于现代 .NET 8+ 架构
|
||||||
|
- ✅ 完全跨平台(Windows / Linux / macOS)
|
||||||
|
- ✅ 基于 ImageSharp
|
||||||
|
- ✅ 简洁易用的 API
|
||||||
|
- ✅ 支持批量目录处理
|
||||||
|
- ✅ 支持文字与图片水印
|
||||||
|
- ✅ 支持平铺/重复水印模式
|
||||||
|
- ✅ 支持 Dependency Injection
|
||||||
|
- ✅ 开源 MIT 协议
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 功能特性
|
||||||
|
|
||||||
|
## 文字水印
|
||||||
|
|
||||||
|
支持:
|
||||||
|
|
||||||
|
- 自定义字体
|
||||||
|
- 字体大小
|
||||||
|
- 旋转
|
||||||
|
- 透明度
|
||||||
|
- 边距
|
||||||
|
- 九宫格定位系统
|
||||||
|
- 平铺模式
|
||||||
|
|
||||||
|
## 图片水印
|
||||||
|
|
||||||
|
支持 Logo 与 PNG 图片覆盖:
|
||||||
|
|
||||||
|
- PNG 透明度支持
|
||||||
|
- 不透明度控制
|
||||||
|
- 缩放
|
||||||
|
- 定位
|
||||||
|
- 平铺/重复模式
|
||||||
|
|
||||||
|
## 批量处理
|
||||||
|
|
||||||
|
使用单个方法即可处理整个目录中的图片。
|
||||||
|
|
||||||
|
支持格式:
|
||||||
|
|
||||||
|
- JPEG
|
||||||
|
- PNG
|
||||||
|
- BMP
|
||||||
|
- GIF
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 安装
|
||||||
|
|
||||||
|
```bash
|
||||||
|
dotnet add package Watermark.Net
|
||||||
|
```
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
Install-Package Watermark.Net
|
||||||
|
```
|
||||||
|
|
||||||
|
要求:
|
||||||
|
|
||||||
|
- .NET 8 或更高版本
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 快速开始
|
||||||
|
|
||||||
|
## 添加文字水印
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
var watermark = new TextWatermark
|
||||||
|
{
|
||||||
|
Text = "CONFIDENTIAL",
|
||||||
|
Font = SystemFonts.CreateFont("Arial", 36)
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 添加图片水印
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
var watermark = new ImageWatermark
|
||||||
|
{
|
||||||
|
ImagePath = "logo.png"
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 常见使用场景
|
||||||
|
|
||||||
|
- 图片版权保护
|
||||||
|
- 电商产品图片品牌化
|
||||||
|
- SaaS 图像处理流水线
|
||||||
|
- AI 生成图片标记
|
||||||
|
- CMS 系统
|
||||||
|
- 社交媒体自动化
|
||||||
|
- 后端图像处理服务
|
||||||
|
- ASP.NET 图片服务
|
||||||
|
- 批量图片处理
|
||||||
|
- 内部文档标记
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# License
|
||||||
|
|
||||||
|
本项目基于 MIT License 开源。
|
||||||
Reference in New Issue
Block a user