上一篇博客分享了image文件的各种操作,包括图片与Base64互转、与文件流互转等,这些都是非常基础的功能。如果开发的软件对图形化要求很高,就明显不够用了。今天就推荐一款net平台中非常优秀的图形处理组件,名字叫NetVips。名字很奇怪,但很好很强大。
简单说这个组件,NetVips是libvips的.net封装,NetVips速度快,几乎不需要内存。 NetVips.Benchmarks项目针对Magick.NET和ImageSharp测试NetVips。 NetVips比Magick.NET快14倍,比ImageSharp快5倍。(https://kleisauke.github.io/net-vips/)
libvips图像处理库运行速度快,并且占用的内存很少。 libvips是根据LGPL2.1+授权的。(https://github.com/libvips/libvips)它具有约300种运算,涵盖算术,直方图,卷积,形态运算,频率滤波,颜色,重采样,统计等。虽然相比opencv等专业的库差了一些,但是其不占内存的特点,使其适合处理较大的图片。
使用方法是在nuget搜索NetVips,安装下面3个包即可。NetVips / NetVips.Native.win-x64 / NetVips.Native.win-x86
使用也非常简单,像下面这样,就完成了一个操作
string imgFile = @"C:\Users\Administrator\Desktop\tempfile\img1.jpg"; NetVips.Image imgObj = NetVips.Image.NewFromFile(imgFile); //缩放50% NetVips.Image imgRes1 = imgObj.Resize(0.5); string imgFile1 = @"C:\Users\Administrator\Desktop\tempfile\imgRes1.jpg"; imgRes1.WriteToFile(imgFile1); //旋转90度 NetVips.Image imgRes2 = imgObj.Rot90(); string imgFile2 = @"C:\Users\Administrator\Desktop\tempfile\imgRes2.jpg"; imgRes2.WriteToFile(imgFile2);
最后看下它提供的方法列表,很多吧
开源地址
https://github.com/kleisauke/net-vips
相关阅读
文章评论