ImageSharp .NET Core跨平台图形处理库
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。
如果你觉得本文对你有帮助,请点击“推荐”,谢谢。
ImageSharp .NET Core跨平台图形处理库的更多相关文章
- [.net 面向对象程序设计深入](9).NET Core 跨平台开发环境搭建
[.net 面向对象程序设计深入](9).NET Core 跨平台开发环境搭建 1.概述 读前必备:认识.NET Core 上篇介绍了.NET 新的生态环境:包括.NET Framework..NET ...
- .Net Core跨平台应用研究-CustomSerialPort(增强型跨平台串口类库)
.Net Core跨平台应用研究-CustomSerialPort -增强型跨平台串口类库 摘要 在使用SerialPort进行串口协议解析过程中,经常遇到接收单帧协议数据串口接收事件多次触发,协议解 ...
- .Net Core跨平台应用研究-HelloArm(串口篇)
引言 为了验证采用dotnet core技术开发的物联网设备数据采集接入服务应用是否能在高性价比的linux嵌入式平台运行,针对dotnet core应用程序进行嵌入式linux环境的发布部署运行验证 ...
- 3D图形处理库
转自 3D图形处理库 高性能软件光栅化渲染器 OpenSWR OpenSWR —— 用于OpenGL的高性能,高度可扩展的软件光栅化渲染器 OpenSWR的目的是提供一个高性能,高度可扩展的OpenG ...
- .Net Core 跨平台:一个简单程序的多平台(windows、Linux、osx)发布
.Net Core 跨平台:一个简单程序的多平台(windows.Linux.osx)发布 .Net Core 3.0 已于2019年9月23日发布了,包含了一些新特性,具体参见Announcing ...
- .net core跨平台应用研究-ubuntu core下配置.net core运行时
引言 年初研究了一阵子.net core跨平台应用,先后发表了几篇应用研究的文章.因工作原因,忙于项目上线,有一阵子没来博客园写文章了.最近项目基本收尾,抽空翻了下自己的博客,廖廖几篇文章,真让人汗颜 ...
- .NET Core 跨平台 GUI 开发之 GTtkSharp 初级篇
.NET Core 跨平台 GUI 开发之 GTtkSharp 初级篇 本文作为初级篇,适合已经安装好.NET Core 环境以及 Gtk 环境,并具备了 C#开发基础知识,能跑一些简单的例子,希望更 ...
- .NET Core 跨平台
前言 .NET Core是一个开源的模块化的Framework,不管是开发web或移动设备都在同一个Framework(.NET Core)下运行,而且 .NET Core也可在不同的操作系统上运 ...
- 如约而至:微信自用的移动端IM网络层跨平台组件库Mars已正式开源
1.前言 关于微信内部正在使用的网络层封装库Mars开源的消息,1个多月前就已满天飞(参见<微信Mars:微信内部正在使用的网络层封装库,即将开源>),不过微信团队没有失约,微信Mars ...
随机推荐
- 带你实现开发者头条APP(三) 首页实现
title: 带你实现开发者头条APP(三) 首页实现 tags: 轮播广告,ViewPager切换,圆形图片 grammar_cjkRuby: true --- 一.前言 今天实现开发者头条APP的 ...
- Paypal开发中遇到请求被中止: 未能创建 SSL/TLS 安全通道及解决方案
最近在基于ASP.NET上开发了Paypal支付平台,在ASP.NET开发的过程中没有遇到这个问题,但是引用到MVC开发模式中的时候就出现了"未能创建 SSL/TLS 安全通道及解决方案&q ...
- 深入node之Transform
Transform流特性 在开发中直接接触Transform流的情况不是很多,往往是使用相对成熟的模块或者封装的API来完成流的处理,最为特殊的莫过于through2模块和gulp流操作.那么,Tra ...
- 由js apply与call方法想到的js数据类型(原始类型和引用类型)
原文地址:由js apply与call方法想到的js数据类型(原始类型和引用类型) js的call方法与apply方法的区别在于第二个参数的不同,他们都有2个参数,第一个为对象(即需要用对象a继承b, ...
- python10作业思路及源码:类Fabric主机管理程序开发(仅供参考)
类Fabric主机管理程序开发 一,作业要求 1, 运行程序列出主机组或者主机列表(已完成) 2,选择指定主机或主机组(已完成) 3,选择主机或主机组传送文件(上传/下载)(已完成) 4,充分使用多线 ...
- [Android]使用Dagger 2来构建UserScope(翻译)
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/6237731.html 使用Dagger 2来构建UserSco ...
- nginx代理https站点(亲测)
nginx代理https站点(亲测) 首先,我相信大家已经搞定了nginx正常代理http站点的方法,下面重点介绍代理https站点的配置方法,以及注意事项,因为目前大部分站点有转换https的需要所 ...
- Quartz
Quartz是一个开源的作业调度框架,它完全由Java写成,并设计用于J2SE和J2EE应用中.它提供了巨大的灵 活性而不牺牲简单性.你能够用它来为执行一个作业而创建简单的或复杂的调度. eg: ja ...
- Jexus 服务器部署导航
说明:本索引只是方便本人查找,不涉及版权问题,所有博客,还是到元博客地址访问. <script async src="//pagead2.googlesyndication.com/p ...
- .NET开源进行时:消除误解、努力前行(本文首发于《程序员》2015第10A期的原始版本)
2014年11月12日,ASP.NET之父.微软云计算与企业级产品工程部执行副总裁Scott Guthrie,在Connect全球开发者在线会议上宣布,微软将开源全部.NET核心运行时,并将.NET ...