當前位置: 妍妍網 > 碼農

.NET 最好的圖片工具(裁剪、縮放、加浮水印)

2024-02-09碼農


前言

支持.Net Core(2.0及以上)與.Net Framework(4.5及以上)可以部署在Docker, Windows, Linux, Mac。

圖片的裁剪、縮放、與加浮水印,是任何系統經常要用到的功能,它們現已整合到IUtility工具中,使用十分簡便。

裁剪

現給出一張「原圖」,如下:

原圖裁剪後的效果如下:

裁剪的方法使用說明

PictureCut(Async)
聲明:voidPictureCut(string SourceFile, int CutStartPointX, int CutStartPointY, int CutWidth, int CutHeight, string TargetFile)
用途:圖片裁剪
參數:(1)string SourceFile -- 原始圖片檔路徑
(2)int CutStartPointX --起始裁剪點X座標
(3)int CutStartPointY --起始裁剪點Y座標
(4)int CutWidth --裁剪寬度
(5)int CutHeight --裁剪高度
(6)string TargetFile --新生成的目標圖片檔路徑
返回:(無)

註意:X、Y座標,是以圖片左上角為原點而定,單位是像素。

縮略

原圖縮略後的效果如下:

縮略的方法使用說明

PictureThumbnail(Async)
聲明:voidPictureThumbnail(string SourceFile, int FrameWidth, int FrameHeight, string TargetFile)
用途:圖片縮略
參數:(1)string SourceFile -- 原始圖片檔路徑
(2)int FrameWidth --縮略框的寬度
(3)int FrameHeight --縮略框的高度
(4)string TargetFile --新生成的目標圖片檔路徑
返回:(無)

加文字浮水印

原圖加文字浮水印後的效果如下:

加文字浮水印的方法使用說明

PictureTextWatermark(Async)
聲明:voidPictureTextWatermark(string SourceFile, string WaterText, System.Drawing.Font WaterTextFont, System.Drawing.Brush WaterTextBrush, int x, int y, string TargetFile)
用途:圖片加「文字」浮水印
參數:(1)string SourceFile -- 原始圖片檔路徑
(2)string WaterText --浮水印文字
(3)System.Drawing.Font WaterTextFont --浮水印文字字型
(4)System.Drawing.Brush WaterTextBrush --浮水印文字筆觸
(5)int x --浮水印影像的起始X座標
(6)int y --浮水印影像的起始Y座標
(7)string TargetFile --新生成的目標圖片檔路徑
返回:(無)

加圖片浮水印

原圖加圖片浮水印後的效果如下:

加圖片浮水印的方法使用說明

PictureImageWatermark(Async)
聲明:voidPictureImageWatermark(string SourceFile, string WatermarkFile, int x, int y, string TargetFile)
用途:圖片加「影像」浮水印
參數:(1)string SourceFile -- 原始圖片檔路徑
(2)string WatermarkFile --浮水印圖檔路徑
(3)int x --浮水印影像的起始X座標
(4)int y --浮水印影像的起始Y座標
(5)string TargetFile --新生成的目標圖片檔路徑
返回:(無)

程式碼

以上4個實驗的具體程式碼如下:

1、若是在.NET Core環境下,程式碼如下:

using DeveloperSharp.Framework.CoreUtility; //請先從NuGet參照DeveloperSharp包
--------------------------
//首先在Startup.cs或Program.cs檔中進行工具預載
Services.AddTransient<IUtility, Utility>();
--------------------------
//IU是在相關檔中,透過依賴註入方式獲取的IUtility型別物件
//IU.PictureCutAsync("D:/fengjing.jpg", 500, 350, 200, 200, "D:/fj1.jpg");
//IU.PictureThumbnailAsync("D:/fengjing.jpg", 400, 300, "D:/fj2.jpg");
//IU.PictureTextWatermarkAsync("D:/fengjing.jpg", "世界,你好!", new Font("華文新魏", 40, Font style.Bold), Brushes.Azure, 500, 50, "D:/fj3.jpg");
//IU.PictureImageWatermarkAsync("D:/fengjing.jpg","D:/log.png",680, 380, "D:/fj4.jpg");

2、若是在.NET Framework環境下,程式碼如下:

using DeveloperSharp.Framework.CoreUtility; //請先從NuGet參照DeveloperSharp包
--------------------------
IUtility ui = new Utility();
//ui.PictureCut("D:/fengjing.jpg", 500, 350, 200, 200, "D:/fj1.jpg");
//ui.PictureThumbnail("D:/fengjing.jpg", 400, 300, "D:/fj2.jpg");
//ui.PictureTextWatermark("D:/fengjing.jpg", "世界,你好!", new Font("華文新魏", 40, Font style.Bold), Brushes.Azure, 500, 50, "D:/fj3.jpg");
//ui.PictureImageWatermark("D:/fengjing.jpg","D:/log.png",680, 380, "D:/fj4.jpg");

- EOF -