NET 平台下的一个 图片处理万能库ImageMagick

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);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值