这是个老生常谈的话题,需求实在太多,而且也较简单,写此文也是因为几个月没写技术文章了,权当为下一步开个头。我之前也做过很多此类项目,但是就我自己来说每次处理方式还都不一样,有用OpenCV的,有用Magick的,牵涉到影像还用了GDAL,当然有些还是自己纯手工写的,以上这些方式各有各的优点,需要针对不同项目合理选择或组合,本文不在此对比,两年前没有写博客的习惯,所以没能记录下来,如果以后用到会专门写博客讲述。
本次又有个项目需要做图像处理,本着找点新东西的想法,没有用原来的这些代码,试着Google了一下,找到了一个.NET下图像处理的框架,不管三七二十一先拿来用用吧。它就是本文的主角——ImageProcessor,对其不详细叙述,可以直接看其介绍,使用也非常容易,下面上干货。
引入
可以直接使用Nuget引入,搜索ImageProcessor即可。
打开图像
常用的图像基本都支持,打开也非常方便,代码如下,path为文件路径。
var imageFactory = new ImageFactory().Load(path)
显示图像
可以直接在picturebox控件中显示原始图像或处理的结果(其每一步处理完也同样为ImageFactory对象)。
picturebox.Image = imageFactory.Image
基本操作
其常用功能大多都已实现,可以参考其官方文档,只需要注意其链式编程模式即可。另外其后续项目已经升级为ImageSharp,该项目支持.NET Core。
总结
本文仅是简单的ImageProcessor的介绍,写此文的目的也是推广此框架,我看国内基本没有关于此项目的介绍,所以拿出来抛砖引玉。