.net ImageProcessor组件转换图片格式
官网地址:
https://imageprocessor.org/imageprocessor-web/
一.ImageProcessor组件概述
ImageProcessor是用C#编写的轻量级库的集合,它允许你使用.NET 4.5+来动态地处理图像,包括两个主库ImageProcessor(用于桌面和应用程序使用)ImageProcessor.Web(ASP.NET构建的动态图像处理扩展),该组件快速,可扩展,易于使用,捆绑了一些很强大的功能,而且是完全开源。该组件有两个部分,我们今天将主要讲解ImageProcessor部分的内容,如果对另外一个感兴趣,可以自行了解。
ImageProcessor.Web向项目添加了一个可配置的HttpModule,允许对图像文件进行即时处理。该模块还提供了一个基于文件和浏览器的缓存,可以处理数百万的图像,增加处理输出和节省宝贵的服务器内存。该组件的功能方法包括:调整大小,旋转,圆角,翻转,裁剪,水印,过滤器,饱和度,亮度,对比度,质量,格式,小插曲,高斯模糊,高斯锐化和透明度。
ImageProcessor.Web的当前版本是4.8.2,可以下载源码和DLL文件(本人建议最好下载源码,好处就不在这里赘述)。
ImageProcessor.Web是ImageProcessor的Web扩展,允许开发人员使用Url API的查询字符串参数作为指令执行图像操作。此过程的输出是高度优化的网络,以确保web项目较高的性能。安装ImageProcessor.Web时,默认情况下,Web.config中添加配置节点,如下节点。
<add name="ImageProcessorModule" type="ImageProcessor.Web.HttpModules.ImageProcessingModule, ImageProcessor.Web" /></httpModules>
这允许库ImageProcessingModule拦截本地图像处理请求。ImageProcessor.Web是高度可配置的。可以将其他配置文件添加到解决方案中,以便从多个来源检索,处理和缓存图像。对于该组件的配置设置可以查看文档。
二.ImageProcessor组件操作概述
介绍了组件的相关信息,在这里介绍一下该组件的操作实例。ImageFactory类提供了对给定图像执行各种操作功能的方法。它经过精心设计以防止在以高性能方式处理图像时通常发生的各种内存泄漏。这使其可以安全地在桌面和Web环境中使用。ImageFactory自动检测给定图像的正确文件类型,并且该类的API是流畅的,这允许您轻松地链接方法以提供所需的输出。例如,以下代码加载,调整大小,设置新格式并保存包含图像信息的MemoryStream。
public static void Image(string file){if (string.IsNullOrEmpty(file)){throw new ArgumentNullException(file);}byte[] photoBytes = System.IO.File.ReadAllBytes(file);// 检测格式ISupportedImageFormat format = new JpegFormat { Quality = 70 };//格式还有PngFormatSize size = new Size(150, 0);using (MemoryStream inStream = new MemoryStream(photoBytes)){using (MemoryStream outStream = new MemoryStream()){// 使用重载初始化ImageFactory以保留EXIF元数据。using (ImageFactory imageFactory = new ImageFactory(true)){// 加载,调整大小,设置格式和质量并保存图像。imageFactory.Load(inStream).Resize(size).Format(format).Save(outStream);//对获取的imageFactory对象进行对应的操作}//对获取的数据流进行操作}}
上面是转换图片格式为jpeg。
对于图片的操作,具体有较多的操作方式,具体的方法有如下的方法:
方法名称 | 方法操作说明 |
Reset | 将当前图像重置为其原始加载状态 |
Alpha | 更改当前图像的不透明度 |
AutoRotate | 执行自动旋转以确保反映EXIF定义的旋转最终图像 |
BitDepth | 改变当前图像的位深度 |
Brightness | 更改当前图像的亮度 |
BackgroundColor | 更改当前图像的背景颜色 |
Constrain | 约束当前图像,调整其大小以适合给定的尺寸,同时保持其纵横比 |
Contrast | 更改当前图像的对比度 |
Crop | 将当前图像裁剪到给定的位置和大小 |
DetectEdges | 检测当前图像中的边缘 |
Resolution | 设置图像的分辨率 |
EntropyCrop | 将图像修剪到最大熵的区域 |
Filter | 将过滤器应用于当前图像 |
Flip | 水平或垂直翻转当前图像 |
Gamma | 调整给定图像的灰度(光强度)分量 |
GaussianBlur | 使用高斯内核模糊当前图像 |
Hue | 改变当前图像的色调,改变整体颜色 |
Halftone | 将当前图像转换为该图像的CMYK半色调表示 |
Quality | 改变当前图像的输出质量 |
ReplaceColor | 替换当前图像中的颜色 |
Resize | 将当前图像调整为给定尺寸 |
Rotate | 将当前图像旋转给定角度 |
以上只是列出了一些主要的操作方法,还有其他的方法这里就不再介绍,有兴趣可以自己取实践。下面就介绍一下一些核心对象。
注意:
谷歌浏览器默认的图片个是webp,如果转换图片格式的话,需要安装如下的插件:
https://imageprocessor.org/imageprocessor/plugins/webp/
更详细的请看转载地址:https://www.cnblogs.com/Leo_wl/p/6582728.html
.net ImageProcessor组件转换图片格式相关推荐
- java批量转换图片格式
废话不多直接上代码,代码其实也不多.... package com.qiao.testImage;import java.awt.image.BufferedImage; import java.io ...
- matlab 转换图片格式,Matlab实现图片格式转换 pgm转jpg等
在Matlab下,转换图片格式相对比较容易,本文以 PGM 转 JPG 为例,贴出示例程序: % 将pgm图片批量转换为jpg图片 function [ ] = pgm2jpg( ) % 读取指定目录 ...
- 使用macOS自带convert,sips命令快速处理图片及转换图片格式
写在前面 最近有需求转换图片的格式, 例如 将.PDF转换为.png以便CSDN编辑器上传(如果直接使用截图会显得比较麻烦,多费一道手续), 或是将微信的一些图片制作成表情包(需要转换图片为.gif格 ...
- PDF文件格式转换攻略:PDF格式转换图片格式
关于PDF文件格式的转换大家有了解多少吗?就比如将PDF格式转换成图片格式,可能之前大家对于PDF件大家都有了解到,办公中我们经常遇到过.现在小编在这里教大家如何将PDF格式转换成图片格式,有兴趣的伙 ...
- python实现pdf格式转换图片格式
使用python代码实现pdf转换图片格式 核心代码: import io from wand.image import Image from wand.color import Color from ...
- WPS格式文件转换图片格式如何实现
WPS作为在办公中是一款家喻户晓的软件,相信不少人都使用过.WPS 格式有时候并不适用所有的设施,比如手机中如果没有类似于阅读器软件的话就观看不了.但是图片格式相信都可以阅览的,可以将WPS格式的文件 ...
- 图片扩展名如何修改,转换图片格式轻松搞定
大家都知道,图片格式有很多种,有时候为了某种特殊需求我们需要更改图片文件的类型,也就是更换图片格式.一般来说,想要更改图片格式,那么我们可以使用"文件批量改名高手"转换图片格式. ...
- 如何在Mac中转换图片格式
对于转换图片的格式这个话题,很多网友留言有没有简单快速的解决方法,可以试试这个方法,但是前提是需要安装小机器人Permute 哦. Permute 3 如何转换图片格式 1.把软件安装到Mac电脑,接 ...
- 怎么批量转换图片格式?
怎么批量转换图片格式?在日常的工作过程中,小伙们时常需要将上百上千的图片进行格式转换,如果你一张一张图片进行转换,就需要消耗大量的时间和精力,时间就是金钱,我们不应该浪费大量时间在这种简单又重复的事情 ...
最新文章
- android aidl接口初步了解
- 乐安全 支持x86_国产EDA又进一步!芯华章发布全新仿真技术:x86、ARM等架构通吃...
- hdu4982 暴搜+剪枝(k个数和是n,k-1个数的和是平方数)
- 解决:adb 提示adb server version(31) doesn‘t match this client(41) 解决办法
- 推荐系统读书笔记(推荐系统实战)
- bzoj 3585 mex
- 十大经典排序算法动画演示
- 分部类和方法的学习以及在LINQ中的应用(原创)
- 巧用代理猎手揪出局域网中的二级代理
- Linux修改默认静态IP
- 遥感原理与应用网络课程学习
- 计算机毕业设计Java车辆保险管理系统(源码+系统+mysql数据库+lw文档)
- CocosCreator-动态生成3种敌人
- 谢孟媛初级文法28 课地方副词时间副词和程度副词
- Eclipse下载与安装教程(最简单版)
- 安全策略篇 安全策略发展历程详解
- GBase 8s分布式功能之异地容灾
- mysql复购率_Mysql与Pyhton实现复购率和回购率
- 《大明王朝》不断被征服的谭纶
- 51单片机的温湿度控制系统