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跨平台图形处理库的更多相关文章

  1. [.net 面向对象程序设计深入](9).NET Core 跨平台开发环境搭建

    [.net 面向对象程序设计深入](9).NET Core 跨平台开发环境搭建 1.概述 读前必备:认识.NET Core 上篇介绍了.NET 新的生态环境:包括.NET Framework..NET ...

  2. .Net Core跨平台应用研究-CustomSerialPort(增强型跨平台串口类库)

    .Net Core跨平台应用研究-CustomSerialPort -增强型跨平台串口类库 摘要 在使用SerialPort进行串口协议解析过程中,经常遇到接收单帧协议数据串口接收事件多次触发,协议解 ...

  3. .Net Core跨平台应用研究-HelloArm(串口篇)

    引言 为了验证采用dotnet core技术开发的物联网设备数据采集接入服务应用是否能在高性价比的linux嵌入式平台运行,针对dotnet core应用程序进行嵌入式linux环境的发布部署运行验证 ...

  4. 3D图形处理库

    转自 3D图形处理库 高性能软件光栅化渲染器 OpenSWR OpenSWR —— 用于OpenGL的高性能,高度可扩展的软件光栅化渲染器 OpenSWR的目的是提供一个高性能,高度可扩展的OpenG ...

  5. .Net Core 跨平台:一个简单程序的多平台(windows、Linux、osx)发布

    .Net Core 跨平台:一个简单程序的多平台(windows.Linux.osx)发布 .Net Core 3.0 已于2019年9月23日发布了,包含了一些新特性,具体参见Announcing ...

  6. .net core跨平台应用研究-ubuntu core下配置.net core运行时

    引言 年初研究了一阵子.net core跨平台应用,先后发表了几篇应用研究的文章.因工作原因,忙于项目上线,有一阵子没来博客园写文章了.最近项目基本收尾,抽空翻了下自己的博客,廖廖几篇文章,真让人汗颜 ...

  7. .NET Core 跨平台 GUI 开发之 GTtkSharp 初级篇

    .NET Core 跨平台 GUI 开发之 GTtkSharp 初级篇 本文作为初级篇,适合已经安装好.NET Core 环境以及 Gtk 环境,并具备了 C#开发基础知识,能跑一些简单的例子,希望更 ...

  8. .NET Core 跨平台

    前言   .NET Core是一个开源的模块化的Framework,不管是开发web或移动设备都在同一个Framework(.NET Core)下运行,而且 .NET Core也可在不同的操作系统上运 ...

  9. 如约而至:微信自用的移动端IM网络层跨平台组件库Mars已正式开源

    1.前言 关于微信内部正在使用的网络层封装库Mars开源的消息,1个多月前就已满天飞(参见<微信Mars:微信内部正在使用的网络层封装库,即将开源>),不过微信团队没有失约,微信Mars ...

随机推荐

  1. [C#] 走进异步编程的世界 - 开始接触 async/await

    走进异步编程的世界 - 开始接触 async/await 序 这是学习异步编程的入门篇. 涉及 C# 5.0 引入的 async/await,但在控制台输出示例时经常会采用 C# 6.0 的 $&qu ...

  2. jquery插件的用法之cookie 插件

    一.使用cookie 插件 插件官方网站下载地址:http://plugins.jquery.com/cookie/ cookie 插件的用法比较简单,直接粘贴下面代码示例: //生成一个cookie ...

  3. 记录我这一年的技术之路(nodejs纯干货)

    2015年12月28日23:19:54 更新koa应用.学习型网站和开发者工具等 coding伊始 开始认认真真的学习技术还是2015.10.21日开始的,记得很清楚,那天,是我在龙湖正式学习的第一天 ...

  4. 用神奇的currentColor制作简洁的颜色动画效果

    先上一个兼容性总结图:老版本ie可以直接用复杂方法了,套用某表情包的话:  2016年了,做前端你还考虑兼容IE6?你这简直是自暴自弃! 好了,知道了兼容性,我们可以放心的使用了. 在CSS3中扩展了 ...

  5. Java 经典入门(一)

    一.什么是 Java 技术?为何需要 Java? Java 是由 Sun Microsystems 在 1995 年首先发布的编程语言和计算平台.有许多应用程序和 Web 站点只有在安装 Java 后 ...

  6. peer not authenticated的终极解决方案

    一.前述 使用httpclient发起https请求时,可能会遇到如下异常: javax.net.ssl.SSLPeerUnverifiedException: peer not authentica ...

  7. C# 泛型

    C# 泛型 1.定义泛型类 在类定义中包含尖括号语法,即可创建泛型类: class MyGenericClass<T> { //Add code } 其中T可以遵循C#命名规则的任意字符. ...

  8. jquery学习(一)

    简单的jquery学习,首先在页面引入jquery <!-- 引入jquery --> <script src="js/jquery-1.8.3.js" type ...

  9. 在 SharePoint Server 2016 本地环境中设置 OneDrive for Business

    建议补丁 建议在sharepoint2016打上KB3127940补丁,补丁下载地址 https://support.microsoft.com/zh-cn/kb/3127940 当然不打,也可以用O ...

  10. ADFS3.0与SharePoint2013安装配置(原创)

    现在越来越多的企业使用ADFS作为单点登录,我希望今天的内容能帮助大家了解如何配置ADFS和SharePoint 2013.安装配置SharePoint2013这块就不做具体描述了,今天主要讲一下怎么 ...