.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 };//格式还有PngFormat

            Size 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

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值