一个强大、支持100多中格式.Net图片操作库

 

目录

项目简介

技术架构

项目结构

系统功能

使用示例

图像读取

 大小改变

图片格式互转

PDF互转

添加水印、文本

图片合并

项目地址


我们在项目开发中,对图片的操作可以说是非常常见,比如图片大小改变、图片合并、格式转换、添加水印等,自己开发都需要费不少时间,所以今天给大家介绍一个支持100多格式图片操作库,完全可以满足项目日常的开发。

项目简介

这是基于.NET Standard开发的开源项目,支持100的图片格式,可以在C#/VB.NET/.NET Core直接使用。

如果需要操作AI/EPS/PDF/PS、Video 格式,需要额外安装插件。

技术架构

1、跨平台:这是基于.NET Standard开发的系统,可以部署在Docker,Windows,Linux;

项目结构

系统功能

1、读取:读取、图片信息、支持多层/帧、Exif数据、颜色;

2、调整:调整动画gif大小、指定图片大小;

3、转换:100多中格式互相转换、CMYK转换为RGB、CR2转换为JPG;

4、合并:图片合并、创建动画gif;

5、PDF:PDF转为一个/多个图片、一个/多个图片转为PDF;

6、压缩:无损压缩;

7、文本:添加文本、添加水印。

使用示例

图像读取

// 读取图片
using (var image = new MagickImage("c:\path\to\Snakeware.jpg"))
{
}

using (var image = new MagickImage())
{
    image.Read("c:\path\to\Snakeware.jpg");
    image.Read(memStream);
    image.Read("xc:yellow", settings);

    using (var memStream = LoadMemoryStreamImage())
    {
        image.Read(memStream);
    }
}

 大小改变

//gif图片大小改变using (var collection = new MagickImageCollection("c:\path\to\SnakewareGif")){   collection.Coalesce();    foreach (var image in collection)    {        image.Resize(200, 0);    }    collection.Write("c:\path\to\Snakeware.resized.gif");}// png图片大小改变using (var image = new MagickImage("c:\path\to\SnakewarePng")){    var size = new MagickGeometry(100, 100);    size.IgnoreAspectRatio = true;    image.Resize(size);    image.Write("c:\path\to\Snakeware.100x100.png");}

 

图片格式互转

// gif 转 png
using (var image = new MagickImage("c:\path\to\Snakeware.gif"))
{
    // Save frame as jpg
    image.Write("c:\path\to\Snakeware.jpg");
}

// 转为png格式
var settings = new MagickReadSettings();
settings.Width = 800;
settings.Height = 600;

using (var memStream = new MemoryStream())
{
    using (var image = new MagickImage("xc:purple", settings))
    {
        image.Format = MagickFormat.Png;
        image.Write(memStream);
    }
}

// png 转 jpeg
using (var image = new MagickImage("c:\path\to\Snakeware.png"))
{
    image.Format = MagickFormat.Jpeg;
    byte[] data = image.ToByteArray();
}

 

PDF互转

​​​​​​​

//pdf 转化为 png、tif格式
var settings = new MagickReadSettings();
settings.Density = new Density(300, 300);

using (var images = new MagickImageCollection())
{
    images.Read("c:\path\to\Snakeware.pdf", settings);

    var page = 1;
    foreach (var image in images)
    {
        image.Write("c:\path\to\Snakeware.Page" + page + ".png");
        image.Format = MagickFormat.Ptif;
        image.Write("c:\path\to\Snakeware.Page" + page + ".tif");
        page++;
    }
}

// 图片转为pdf
using (var image = new MagickImage("c:\path\to\Snakeware.jpg"))
{
    // Create pdf file with a single page
    image.Write("c:\path\to\Snakeware.pdf");
}

//读取指定pdf
using (var images = new MagickImageCollection())
{
    var settings = new MagickReadSettings();
    settings.FrameIndex = 0; 
    settings.FrameCount = 1; 
    images.Read("c:\path\to\Snakeware.pdf", settings);
    images.Clear();
    settings.FrameCount = 2; 
    images.Read("c:\path\to\Snakeware.pdf", settings);
}

 

添加水印、文本

​​​​​​​

//添加水印
using (var image = new MagickImage("c:\path\to\Snakeware.jpg"))
{
    using (var watermark = new MagickImage("c:\path\to\Magick.NET.png"))
    {
        image.Composite(watermark, Gravity.Southeast, CompositeOperator.Over);
        watermark.Evaluate(Channels.Alpha, EvaluateOperator.Divide, 4);
        image.Composite(watermark, 200, 50, CompositeOperator.Over);
    }
    image.Write("c:\path\to\Snakeware.watermark.jpg");
}

//添加文字
using (var image = new MagickImage(new MagickColor("#ff00ff"), 512, 128))
{
    new Drawables()
      .FontPointSize(72)
      .Font("Comic Sans")
      .StrokeColor(new MagickColor("yellow"))
      .FillColor(MagickColors.Orange)
      .TextAlignment(TextAlignment.Center)
      .Text(256, 64, "Magick.NET")
      .StrokeColor(new MagickColor(0, Quantum.Max, 0))
      .FillColor(MagickColors.SaddleBrown)
      .Ellipse(256, 96, 192, 8, 0, 360)
      .Draw(image);
}

图片合并

using (var images = new MagickImageCollection()){    var first = new MagickImage("c:\path\to\Snakeware.png");    images.Add(first);    var second = new MagickImage("c:\path\to\Snakeware.png");    images.Add(second);    using(var result = images.Mosaic())    {      result.Write("Mosaic.png");   }}

项目地址

https://github.com/dlemstra/Magick.NET

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
.Net 是一种跨平台的软件开发框架,它具有强大的开发能力和丰富的功能。海康威视是全球领先的视频监控设备和解决方案提供商。在.NET平台上开发海康威视图片对比功能,可以为用户提供更便捷、高效的图像处理和对比服务。 首先,使用.Net平台进行海康威视图片对比的开发可以充分利用.Net框架的图像处理和算法,实现对监控摄像头拍摄的图像进行高效的对比和匹配。通过.NET的图像处理技术,可以实现图像的精确提取、特征点的获取和匹配,并根据预设的比对规则进行图像对比。 其次,利用.Net平台的多线程技术,可以使得海康威视图片对比功能具备并行处理图像的能力,大大提升对比的速度和效率。同时,.Net平台还提供了丰富的网络通信,可以与海康威视设备进行实时的图像传输和对比,保证图像处理过程的实时性和准确性。 此外,利用.Net平台的图形界面开发技术,可以为用户提供直观友好的图像对比操作界面,使得用户能够方便地进行图像对比的设置和操作。同时,.Net平台还支持用户自定义配置文件的读取和保存,可以根据不同的需求灵活调整图像对比的参数和规则,满足用户的个性化需求。 总之,利用.Net开发海康威视图片对比功能可以充分发挥.Net平台的优势,提供稳定可靠、高效便捷的图像处理和对比服务,为用户提供更好的安防监控体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值