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 / , image.Height / )
.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 / , image.Height / )
.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(1,2);
Color[] colors = new Color[];
for (int i = ; i < ; i++)
{
colors[i] = Color.White;
}
image.SetPixels(, , colors);
image.Save(output);
}
Console.ReadKey();
}

运行程序会在程序根目录下得到如下的图

以上也就是 ImageSharp 的简单使用,更多可以查看官方GitHub。

如果你觉得本文对你有帮助,请点击“推荐”,谢谢。

最新文章

  1. SDL第一个程序:加载一张图片
  2. 在VS2013中强制IIS Express应用程序池使用经典模式
  3. 【bzoj1078】[SCOI2008]斜堆
  4. ScannerTest-------double string
  5. iOS——文件操作NSFileManager (创建、删除,复制,粘贴)
  6. Java日志管理
  7. NPOI封装
  8. 201521123076 《JAVA程序设计》第5周学习总结
  9. Nginx Windows详细安装部署教程
  10. HTTP协议【详解】——经典面试题
  11. linux如何查看端口号被哪个进程占用
  12. 通过wlst工具创建weblogic11g域单节点包括服务与被管服务
  13. C++虚函数工作原理
  14. spring boot 启动后执行初始化方法
  15. hdoj4283 You Are the One
  16. binutils工具集之---ar
  17. 基础概念——何为GNU与GCC
  18. Centos7 yum安装mysql
  19. 「kuangbin带你飞」专题十四 数论基础
  20. angularJs分层服务开发

热门文章

  1. 【基于WPF+OneNote+Oracle的中文图片识别系统阶段总结】之篇一:WPF常用知识以及本项目设计总结
  2. Python自然语言处理工具小结
  3. Response.Redirect引起的性能问题分析
  4. MVC还是MVVM?或许VMVC更适合WinForm客户端
  5. git命令行操作
  6. BZOJ 4453: cys就是要拿英魂![后缀数组 ST表 单调栈类似物]
  7. Xamarin中使用DatePickerDialog的相关问题
  8. 吐血大奉献,打造cnblogs最新最火辣的css3模板(IE9以下请勿入内) -- 第一版
  9. 使用 GCC 和 GNU Binutils 编写能在 x86 实模式运行的 16 位代码
  10. 《学技术练英语》PPT分享