ImageSharp 是支持.NET Core跨平台图形处理库,ImageSharp是ImageProcessor 的.NET Core跨平台实现。
ImageSharp 支持如下操作:
调整大小,裁剪,翻转,旋转,边缘检测等。
支持BMP,PNG,GIF,JPEG 编码器。
EXIF 读取和针对JPEG写。
暂时还不支持Drawing ,即无法支持验证码及水印等操作。
GitHub:https://github.com/JimBobSquarePants/ImageSharp
目前版本为1.0.0-alpha7。
新建项目
新建一个.NET Core 控制台应用程序。
添加引用
由于目前还是alpha版,还未放置在NuGet 中,是在MyGet上 https://www.myget.org/gallery/imagesharp。
在NuGet 程序包源中加入 ImageSharp 源。
ImageSharp 源地址:https://www.myget.org/F/imagesharp

然后在NuGet控制台执行命令:
Install-Package ImageSharp -Version 1.0.0-alpha7
提示:由于是预览版更新较快,如版本无法引用请到https://www.myget.org/gallery/imagesharp 查看版本号,或更改project.json 使用最新版本。
编写代码
首先我们需要一张图,将其放置于程序根目录下命令为lena.jpg。

示例代码如下:
public static void Main(string[] args)
{ //读取EXIF
using (FileStream input = File.OpenRead("lena.jpg"))
{
Image image = new Image(input); var exif = image.ExifProfile.Values; foreach (var item in exif)
{
Console.WriteLine(item.Tag+":"+item.Value);
}
}
//缩放
using (FileStream input = File.OpenRead("lena.jpg")) using (FileStream output = File.OpenWrite("lena2.jpg"))
{
Image image = new Image(input);
image.Resize(image.Width / 2, image.Height / 2)
.Save(output);
} //裁剪
using (FileStream input = File.OpenRead("lena.jpg")) using (FileStream output = File.OpenWrite("lena3.jpg"))
{
Image image = new Image(input);
image.Crop(image.Width / 2, image.Height / 2)
.Save(output);
} //旋转180°
using (FileStream input = File.OpenRead("lena.jpg")) using (FileStream output = File.OpenWrite("lena4.jpg"))
{
Image image = new Image(input);
image.Rotate(RotateType.Rotate180)
.Save(output);
} //设置像素点方式简单画空白
using (FileStream output = File.OpenWrite("lena5.jpg"))
{
Image image = new Image(100,200);
Color[] colors = new Color[20000]; for (int i = 0; i < 20000; i++)
{
colors[i] = Color.White;
}
image.SetPixels(100, 200, colors);
image.Save(output);
}
Console.ReadKey();
}
运行程序会在程序根目录下得到如下的图

本文转自zsdnr 51CTO博客,原文链接:http://blog.51cto.com/12942149/1949727
,如需转载请自行联系原作者