天天看點

驚呆了!NET平台下的圖檔處理庫竟能這樣處理圖檔,簡直萬能

NET 平台下的一個圖檔處理萬能庫ImageMagick

ImageMagick是一個免費的開源軟體套件,用于編輯和操作數字圖像。它可用于建立、編輯、合成或轉換位圖圖像,并支援多種檔案格式,包括 JPEG、PNG、GIF、TIFF 和 PDF,它提供了豐富的API來建立、編輯、合成和轉換圖像。ImageMagick 本身支援更多的圖像處理操作,包括但不限于圖像格式轉換、顔色空間轉換、圖像過濾、特效應用等。

安裝

可以通過 Nuget 包管理器安裝 Polly:

Install-Package Magick.NET-Q8-AnyCPU           

使用

1. 建立一個簡單的圖像

using ImageMagick;

static void CreateSimpleImage()
{
using (MagickImage image = new MagickImage(MagickColor.FromRgb(138, 43, 226), 200, 200))
 {
 image.Write("simple_image.png");
 }
}           

2. 調整圖像大小

static void ResizeImage(string inputImagePath, string outputImagePath, int width, int height)
{
using (MagickImage image = new MagickImage(inputImagePath))
 {
 image.Resize(width, height);
 image.Write(outputImagePath);
 }
}           

3. 裁剪圖像

public void CropImage(string inputImagePath, string outputImagePath, int width, int height, int x, int y)
{
using (MagickImage image = new MagickImage(inputImagePath))
 {
 image.Crop(width, height, x, y);
 image.Write(outputImagePath);
 }
}           

4. 旋轉圖像

public void RotateImage(string inputImagePath, string outputImagePath, double degrees)
{
using (MagickImage image = new MagickImage(inputImagePath))
 {
 image.Rotate(degrees);
 image.Write(outputImagePath);
 }
}           

5. 模糊效果

public void BlurImage(string inputImagePath, string outputImagePath, double radius, double sigma)
{
using (MagickImage image = new MagickImage(inputImagePath))
 {
 image.Blur(radius, sigma);
 image.Write(outputImagePath);
 }
}           

6. 将多張圖檔合并為GIF動畫

public void CreateGifAnimation(string[] imagePaths, string outputGifPath)
{
using (MagickImageCollection collection = new MagickImageCollection())
 {
foreach (var path in imagePaths)
 {
 collection.Read(path);
 }

 collection.AnimationDelay = 100; // 設定動畫的延遲時間(機關:1/100秒)
 collection.Write(outputGifPath);
 }
}           

7. 将圖檔轉換為灰階圖

public void ConvertToGrayscale(string inputImagePath, string outputImagePath)
{
using (MagickImage image = new MagickImage(inputImagePath))
 {
 image.ColorType = ColorType.GRAY;
 image.Write(outputImagePath);
 }
}           

8. 合成兩張圖檔

public void CompositeImages(string image1Path, string image2Path, string outputImagePath)
{
using (MagickImage image1 = new MagickImage(image1Path))
using (MagickImage image2 = new MagickImage(image2Path))
 {
 image1.Composite(image2, CompositeOperator.Atop);
 image1.Write(outputImagePath);
 }
}           
• 體驗位址:https://malus.dotnetshare.com
驚呆了!NET平台下的圖檔處理庫竟能這樣處理圖檔,簡直萬能
  • • 體驗位址:https://www.dotnetshare.com
    驚呆了!NET平台下的圖檔處理庫竟能這樣處理圖檔,簡直萬能
加我微信,拉你進全棧進階、面試交流群,互相監督學習進步等!

❤️ 看完三件事

如果你覺得這篇内容對你挺有啟發,我想邀請你幫個小忙:

繼續閱讀