NET 平臺(tái)下的一個(gè)圖片處理萬能庫ImageMagick
ImageMagick是一個(gè)免費(fèi)的開源軟件套件,用于編輯和操作數(shù)字圖像。它可用于創(chuàng)建、編輯、合成或轉(zhuǎn)換位圖圖像,并支持多種文件格式,包括 JPEG、PNG、GIF、TIFF 和 PDF,它提供了豐富的API來創(chuàng)建、編輯、合成和轉(zhuǎn)換圖像。ImageMagick 本身支持更多的圖像處理操作,包括但不限于圖像格式轉(zhuǎn)換、顏色空間轉(zhuǎn)換、圖像過濾、特效應(yīng)用等。
安裝
可以通過 Nuget 包管理器安裝 Polly:
Install-Package Magick.NET-Q8-AnyCPU
使用
1. 創(chuàng)建一個(gè)簡單的圖像
using ImageMagick;
static void CreateSimpleImage()
{
using (MagickImage image = new MagickImage(MagickColor.FromRgb(138, 43, 226), 200, 200))
{
image.Write("simple_image.png");
}
}
2. 調(diào)整圖像大小
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. 旋轉(zhuǎn)圖像
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動(dòng)畫
public void CreateGifAnimation(string[] imagePaths, string outputGifPath)
{
using (MagickImageCollection collection = new MagickImageCollection())
{
foreach (var path in imagePaths)
{
collection.Read(path);
}
collection.AnimationDelay = 100; // 設(shè)置動(dòng)畫的延遲時(shí)間(單位:1/100秒)
collection.Write(outputGifPath);
}
}
7. 將圖片轉(zhuǎn)換為灰度圖
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);
}
}
該文章在 2024/7/25 9:49:11 編輯過