Znaki wodne na obrazach są zwykle używane do zgłaszania praw własności do treści. Z drugiej strony obrazy są opatrzone znakiem wodnym, aby uniknąć nieautoryzowanego użycia lub podrabiania. W różnych przypadkach może być konieczne zautomatyzowanie funkcji znaku wodnego w aplikacjach internetowych lub komputerowych. W przypadku takich scenariuszy w tym artykule opisano programowe dodawanie znaku wodnego do obrazów przy użyciu języka C#. Może to być również przydatne, gdy trzeba za jednym razem dodać znak wodny do partii obrazów. Więc zacznijmy.
- C# API do dodawania znaku wodnego do obrazów
- Dodaj znak wodny do obrazu w C#
- Dodaj diagonalny znak wodny do obrazów w C#
- Uzyskaj bezpłatną licencję API
C# API do dodawania znaku wodnego do obrazów
Aby dodać znaki wodne do obrazów, użyjemy Aspose.Imaging for .NET. Jest to potężny interfejs API do przetwarzania obrazu, który obsługuje szeroką gamę formatów obrazów. Ponadto interfejs API ułatwia manipulowanie obrazami. Możesz pobrać pliki binarne interfejsu API lub zainstalować je za pomocą NuGet.
PM> Install-Package Aspose.Imaging
Dodaj znak wodny do obrazu w C#
Poniżej przedstawiono kroki dodawania znaku wodnego do obrazu przy użyciu języka C#.
- Załaduj obraz, używając klasy Image.
- Utwórz instancję klasy Graphics i zainicjuj ją obiektem Obraz.
- Ustaw rodzinę czcionek, rozmiar i krój za pomocą klasy Czcionka.
- Utwórz instancję klasy SolidBrush i ustaw jej właściwości, takie jak kolor itp.
- Utwórz instancję klasy StringFormat, aby ustawić wyrównanie tekstu.
- Dodaj znak wodny do obrazu za pomocą metody Graphics.DrawString(String, Font, SolidBrush, 0, 0, StringFormat).
- Zapisz obraz metodą Image.Save(String).
Poniższy przykładowy kod pokazuje, jak dodać znak wodny do obrazu w języku C#.
// Załaduj istniejący obraz PNG
using (Image image = Image.Load("image.png"))
{
// Zadeklaruj obiekt typu String z tekstem znaku wodnego
string theString = "This is watermark";
// Utwórz i zainicjuj instancję klasy Graphics i zainicjuj obiekt SizeF do przechowywania obrazu Size
Graphics graphics = new Graphics(image);
SizeF sz = graphics.Image.Size;
// Tworzy instancję Font, inicjalizuj ją za pomocą Font Face, Size i Style
Font font = new Font("Times New Roman", 20, FontStyle.Bold);
// Utwórz instancję SolidBrush i ustaw jej różne właściwości
SolidBrush brush = new SolidBrush();
brush.Color = Color.Red;
brush.Opacity = 0;
// Zainicjuj obiekt klasy StringFormat i ustaw jego różne właściwości
StringFormat format = new StringFormat();
format.Alignment = StringAlignment.Center;
format.FormatFlags = StringFormatFlags.MeasureTrailingSpaces;
// Narysuj ciąg na wyjściu Image Save na dysk
graphics.DrawString(theString, font, brush, 0, 0, format);
image.Save("watermarked.jpg");
}
Dodaj diagonalny znak wodny do obrazów w C#
W różnych przypadkach znaki wodne są nakładane na obrazy po przekątnej. W tym celu Aspose.Imaging for .NET umożliwia przekształcenie tekstu znaku wodnego pod określonym kątem. Poniżej przedstawiono kroki, aby dodać ukośny znak wodny do obrazu.
- Załaduj obraz, używając klasy Image.
- Utwórz instancję klasy Graphics i zainicjuj ją obiektem Obraz.
- Ustaw rodzinę czcionek, rozmiar i krój za pomocą klasy Czcionka.
- Utwórz instancję klasy SolidBrush i ustaw jej właściwości, takie jak kolor itp.
- Utwórz instancję klasy StringFormat, aby ustawić wyrównanie tekstu.
- Utwórz instancję klasy Matrix i ustaw kąt transformacji.
- Przypisz obiekt Matrix do właściwości Graphics.Transform.
- Dodaj znak wodny za pomocą metody Graphics.DrawString(String, Font, SolidBrush, 0, 0, StringFormat).
- Zapisz obraz metodą Image.Save(String).
Poniższy przykładowy kod pokazuje, jak dodać ukośny znak wodny do obrazów przy użyciu języka C#.
// Załaduj istniejący obraz PNG
using (Image image = Image.Load("Image.png"))
{
// Zadeklaruj obiekt typu String z tekstem znaku wodnego
string theString = "45 Degree Rotated Text";
// Utwórz i zainicjuj instancję klasy Graphics i zainicjuj obiekt SizeF do przechowywania obrazu Size
Graphics graphics = new Graphics(image);
SizeF sz = graphics.Image.Size;
// Tworzy instancję Font, inicjalizuj ją za pomocą Font Face, Size i Style
Font font = new Font("Times New Roman", 20, FontStyle.Bold);
// Utwórz instancję SolidBrush i ustaw jej różne właściwości
SolidBrush brush = new SolidBrush();
brush.Color = Color.Red;
brush.Opacity = 0;
// Zainicjuj obiekt klasy StringFormat i ustaw jego różne właściwości
StringFormat format = new StringFormat();
format.Alignment = StringAlignment.Center;
format.FormatFlags = StringFormatFlags.MeasureTrailingSpaces;
// Utwórz obiekt klasy Matrix do transformacji
Matrix matrix = new Matrix();
// Najpierw tłumaczenie, potem obrót
matrix.Translate(sz.Width / 2, sz.Height / 2);
matrix.Rotate(-45.0f);
// Ustaw transformację przez Matrix
graphics.Transform = matrix;
// Narysuj ciąg na wyjściu Image Save na dysk
graphics.DrawString(theString, font, brush, 0, 0, format);
image.Save("watermarked.png");
}
Uzyskaj bezpłatną licencję API
Jeśli chcesz wypróbować interfejs API bez ograniczeń ewaluacyjnych, możesz uzyskać bezpłatną tymczasową licencję.
Wniosek
W tym artykule nauczyłeś się, jak dodawać znak wodny do obrazów przy użyciu języka C#. Ponadto widziałeś, jak przekształcić tekst znaku wodnego pod określonym kątem. Możesz dowiedzieć się więcej o interfejsie API przetwarzania obrazu w języku C#, korzystając z dokumentacji. Jeśli masz jakieś pytania lub wątpliwości, skontaktuj się z nami za pośrednictwem naszego forum.