圖像中的水印通常用於聲明內容的所有權。另一方面,圖像帶有水印以避免未經授權的使用或偽造。在各種情況下,您可能需要在 Web 或桌面應用程序中自動添加水印功能。對於此類情況,本文介紹瞭如何使用 C# 以編程方式向圖像添加水印。當您需要一次性為一批圖像添加水印時,這也很有用。讓我們開始吧。
用於向圖像添加水印的 C# API
為了給圖像添加水印,我們將使用 Aspose.Imaging for .NET。它是一個功能強大的圖像處理 API,支持多種圖像格式。此外,API 使您可以更輕鬆地操作圖像。您可以 下載 API 的二進製文件或使用 NuGet 安裝它。
PM> Install-Package Aspose.Imaging
在 C# 中為圖像添加水印
以下是使用 C# 為圖像添加水印的步驟。
- 使用 Image 類加載圖像。
- 創建 Graphics 類的實例並使用 Image 對像對其進行初始化。
- 使用 Font 類設置字體系列、大小和外觀。
- 創建 SolidBrush 類的實例並設置其屬性,例如顏色等。
- 實例化 StringFormat 類以設置文本對齊方式。
- 使用 Graphics.DrawString(String, Font, SolidBrush, 0, 0, StringFormat) 方法為圖像添加水印。
- 使用 Image.Save(String) 方法保存圖像。
下面的代碼示例顯示瞭如何在 C# 中為圖像添加水印。
// 加載現有的 PNG 圖像
using (Image image = Image.Load("image.png"))
{
// 聲明一個帶有水印文本的字符串對象
string theString = "This is watermark";
// 創建並初始化 Graphics 類的實例並初始化 SizeF 的對像以存儲圖像大小
Graphics graphics = new Graphics(image);
SizeF sz = graphics.Image.Size;
// 創建一個 Font 的實例,用 Font Face、Size 和 Style 初始化它
Font font = new Font("Times New Roman", 20, FontStyle.Bold);
// 創建 SolidBrush 實例並設置其各種屬性
SolidBrush brush = new SolidBrush();
brush.Color = Color.Red;
brush.Opacity = 0;
// 初始化 StringFormat 類的對象並設置其各種屬性
StringFormat format = new StringFormat();
format.Alignment = StringAlignment.Center;
format.FormatFlags = StringFormatFlags.MeasureTrailingSpaces;
// 在 Image 上繪製字符串 Save output to disk
graphics.DrawString(theString, font, brush, 0, 0, format);
image.Save("watermarked.jpg");
}
在 C# 中為圖像添加對角線水印
在各種情況下,水印以對角線方式應用於圖像。為此,Aspose.Imaging for .NET 允許您以特定角度變換水印文本。以下是向圖像添加對角線水印的步驟。
- 使用 Image 類加載圖像。
- 創建 Graphics 類的實例並使用 Image 對像對其進行初始化。
- 使用 Font 類設置字體系列、大小和外觀。
- 創建 SolidBrush 類的實例並設置其屬性,例如顏色等。
- 實例化 StringFormat 類以設置文本對齊方式。
- 創建 Matrix 類的實例並設置變換角度。
- 將 Matrix 對象分配給 Graphics.Transform 屬性。
- 使用 Graphics.DrawString(String, Font, SolidBrush, 0, 0, StringFormat) 方法添加水印。
- 使用 Image.Save(String) 方法保存圖像。
以下代碼示例展示瞭如何使用 C# 向圖像添加對角線水印。
// 加載現有的 PNG 圖像
using (Image image = Image.Load("Image.png"))
{
// 聲明一個帶有水印文本的字符串對象
string theString = "45 Degree Rotated Text";
// 創建並初始化 Graphics 類的實例並初始化 SizeF 的對像以存儲圖像大小
Graphics graphics = new Graphics(image);
SizeF sz = graphics.Image.Size;
// 創建一個 Font 的實例,用 Font Face、Size 和 Style 初始化它
Font font = new Font("Times New Roman", 20, FontStyle.Bold);
// 創建 SolidBrush 實例並設置其各種屬性
SolidBrush brush = new SolidBrush();
brush.Color = Color.Red;
brush.Opacity = 0;
// 初始化 StringFormat 類的對象並設置其各種屬性
StringFormat format = new StringFormat();
format.Alignment = StringAlignment.Center;
format.FormatFlags = StringFormatFlags.MeasureTrailingSpaces;
// 創建一個 Matrix 類的對象進行轉換
Matrix matrix = new Matrix();
// 先平移再旋轉
matrix.Translate(sz.Width / 2, sz.Height / 2);
matrix.Rotate(-45.0f);
// 通過矩陣設置變換
graphics.Transform = matrix;
// 在 Image 上繪製字符串 Save output to disk
graphics.DrawString(theString, font, brush, 0, 0, format);
image.Save("watermarked.png");
}
獲取免費的 API 許可證
如果您想在沒有評估限制的情況下試用 API,您可以獲得免費的臨時許可證。
結論
在本文中,您學習瞭如何使用 C# 為圖像添加水印。此外,您還了解瞭如何將水印文本轉換為特定角度。您可以使用 文檔 探索有關 C# 圖像處理 API 的更多信息。如果您有任何問題或疑問,請通過我們的論壇 聯繫我們。