.NET Core跨平台图形处理库ImageSharp

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

编写代码

首先我们需要一张图,将其放置于程序根目录下命令为lena.jpg。

示例代码如下:

        public static void Main(string[] args){      
          
//读取EXIFusing (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();}

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

 

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

原文地址:http://www.cnblogs.com/linezero/p/ImageSharp.html


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/327966.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JVM GC参数以及GC算法的应用

转载自 JVM GC参数以及GC算法的应用1. 串行收集器 串行收集器是最古老&#xff0c;最稳定以及效率高的收集器可能会产生较长的停顿&#xff0c;只使用一个线程去回收-XX:UseSerialGC新生代、老年代使用串行回收新生代复制算法老年代标记-压缩串行收集器的日志输出&#xff1a…

hibernate正向生成数据库表以及配置——Student.java

package cn.bdqn.studentInfo.entity;import java.util.HashSet; import java.util.Set;/*** 学生表的实体类* author Administrator**/ public class Student {private Integer id;private String name;private Set<Teacher>teachersnew HashSet<Teacher>();publi…

全局配置_配置全局异常处理,结果没有想到,spring boot实践(3)

01 spring boot读取配置信息02 多环境配置这个功能详细大家在项目中也经常遇到&#xff0c;通常我们在写controller的时候会定义一个全局的异常处理。任何的controller出现异常都会进入到这个全局异常统一抛出&#xff0c;同时我们也可以定义一个自定义的异常类来处理一些特殊的…

蓝桥杯JAVA省赛2013-----B------5(有理数类)

五、有理数类 【答案】&#xff1a;Rational(this.rax.rb this.rbx.ra, this.rb*x.rb) public class Test01 {static class Rational //内部类 【main调用内部类 &#xff1a; 内部类前 要加 static】{private long ra;private long rb;private long gcd(long a, long b…

19年8月 字母哥 第四章 常用web开发数据库框架 不要用公司网络加载不出来 用热点!!!

第四章 常用web开发数据库框架 4.1.整合Spring JDBC操作数据 4.2 Spring JDBC多数据源的实现 4.3.Spring JDBC JTA实现分布式事务 4.4.ORM主流框架选型 4.5.bean转换Dozer的快速上手 4.6.整合Spring Data JPA操作数据 4.7.Sp…

分库分表的几种常见形式以及可能遇到的难

在谈论数据库架构和数据库优化的时候&#xff0c;我们经常会听到“分库分表”、“分片”、“Sharding”…这样的关键词。让人感到高兴的是&#xff0c;这些朋友所服务的公司业务量正在&#xff08;或者即将面临&#xff09;高速增长&#xff0c;技术方面也面临着一些挑战。让人…

JVM 调优和垃圾回收器说明

转载自 JVM 调优和垃圾回收器说明JVM垃圾收集算法JVM垃圾收集算法有四种&#xff1a;标记-清除算法、复制算法、标记-整理算法、分代收集算法标记-清除算法&#xff1a;该算法如同它的名字一样&#xff0c;分为两个阶段&#xff1a;标记、清除。首先标记出所有需要回收的对象…

python中的数组按顺序切片_python切片(获取一个子列表(数组))详解

切片&#xff1a;切片指从现有列表中&#xff0c;获取一个子列表返回一个新列表&#xff0c;不影响原列表。下标以 0 开始&#xff1a;list [红,绿,蓝,白,黑,黄,青]# 下标 0 1 2 3 4 5 6取单个值语法&#xff1a;列表[n]n为下标&#xff0c;n0表示第一个 &#xff0c; n1表示第…

.net core快速上手

2014年11月12日的Connect ();开发者活动上宣布将.NET堆栈基于MIT协议开源&#xff0c;并且提供开源保证&#xff0c;托管在Github上。当时的版本与最终目标相距甚远&#xff0c;然而有一点可以肯定的是&#xff0c;这是一个与.NET Framework 4.x完全不同的框架。 这在社区引发了…

hibernate正向生成数据库表以及配置——Teacher.java

package cn.bdqn.studentInfo.entity;import java.util.HashSet; import java.util.Set;/*** 老师的实体类* author Administrator**/ public class Teacher {private Integer id;private String name;private Set<Student> students new HashSet<Student>();publi…

19年8月 字母哥 第五章 静态资源与模板引擎的整合 用热点公司网不行

第五章 静态资源与模板引擎的整合 5.1.webjars与静态资源 5.2.模板引擎选型与未来趋势 5.3.web应用开发之整合jsp 5.4.web应用开发之整合freemarker 5.5.web应用开发之整合thymeleaf 5.6.thymeleaf基础语法讲解 5.7.thymeleaf内置对象与工具类 5.8.公共片段(标签)与内联…

python 随机排序_Python 如何随机打乱列表(List)排序

场景&#xff1a;现在有一个list:[1,2,3,4,5,6]&#xff0c;我需要把这个list在输出的时候&#xff0c;是以一种随机打乱的形式输出。专业点的术语&#xff1a;将一个容器中的数据每次随机逐个遍历一遍。注意&#xff1a;不是生成一个随机的list集。环境&#xff1a;Python 3.6…

深入JVM虚拟机(四) Java GC收集器

转载自 深入JVM虚拟机(四) Java GC收集器1 GC收集器 1.1 Serial串行收集器 串行收集器主要有两个特点&#xff1a;第一&#xff0c;它仅仅使用单线程进行垃圾回收&#xff1b;第二&#xff0c;它独占式的垃圾回收。 在串行收集器进行垃圾回收时&#xff0c;Java 应用程序中的线…

JavaScript(笔记)

UI框架 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yYMMLanm-1608952213820)(C:\Users\王东梁\AppData\Roaming\Typora\typora-user-images\image-20201225142522925.png)] 简介 javaScript是一门世界上最流行的脚本语言 Java&#xff0c;Java…

19年8月 字母哥 第六章 生命周期内的拦截过滤与监听 用热点公司网不行

第六章 生命周期内的拦截过滤与监听 6.1.servlet与filter与listener的实现 servlet的filter(过滤器)listener(监听器) 6.2.spring拦截器及请求链路说明 6.3.自定义事件的发布与监听 6.4.应用启动的监听 第六章 生命周期内的拦截过滤与监听 6.1.servlet与filter与listener的…

外链式样式表_引入CSS样式表(书写位置)

CSS初识CSS(Cascading Style Sheets) 美化样式CSS通常称为CSS样式表或层叠样式表(级联样式表)&#xff0c;主要用于设置HTML页面中的文本内容(字体、大小、对齐方式等)、图片的外形(宽高、边框样式、边距等)以及版面的布局等外观显示样式。CSS以HTML为基础&#xff0c;提供了丰…

JVM 内存分代、垃圾回收漫谈

转载自 JVM 内存分代、垃圾回收漫谈这篇主要简单分享一下关于 JVM 内存模型、内存溢出、内存分代、以及垃圾回收算法的相关知识。如果这篇文章让你对相关知识产生了兴趣而意犹未尽&#xff0c;推荐去阅读周志明老师的《深入理解Java虚拟机》。 JVM 内存区域 这里也简单罗列一下…

hibernate正向生成数据库表以及配置——Student.hbm.xml

<?xml version"1.0" encoding"utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <!-- Mapping file au…

ASP.NET Core 之 Identity 入门(二)

前言 在 上篇文章 中讲了关于 Identity 需要了解的单词以及相对应的几个知识点&#xff0c;并且知道了Identity处在整个登入流程中的位置&#xff0c;本篇主要是在 .NET 整个认证系统中比较重要的一个环节&#xff0c;就是 认证&#xff08;Authentication&#xff09;&#xf…

MySQL笔记汇总---狂神说

公众号笔记 1初识MySQL 2数据库操作 3DML语言 4使用DQL查询数据 5MySQL函数 6事务和索引 7权限及如何设计数据库