mirror of
https://github.com/Geckon01/Watermark.Net.git
synced 2026-06-17 00:27:47 +00:00
Added ru and zh readme
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
# Watermark.Net
|
||||
|
||||
[](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)
|
||||
|
||||
### 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.
|
||||
|
||||
### 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