.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组件转换图片格式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iptables路由转换
- 下一篇: 未找到类型或命名空间名称 (是否缺少