.NET 響應式自動縮略圖服務器

作互聯網網站,老是會涉及到縮略圖問題,以前一直是在上傳圖片時生成不一樣尺寸的縮略圖,一直感受又費力又很差管理,以後就寫子html

ThumbnailServer 用於部署一個圖片服務器,在使用圖片時纔將圖片轉爲對應的縮略圖,相似淘寶圖片空間git

好比,物理上存在圖片github

/x.jpg 那麼訪問 shell

/x.jpg_60X60.jpgc#

/x.jpg_600X600.jpgapi

就能夠獲得它的不一樣尺寸的縮略圖服務器

ThumbnailServerapp

能夠支持:post

路徑-尺寸白名單網站

圖片類型白名單

圖片路徑白名單

以下代碼:

ThumbnailConfig.Start().Include("/Images", setting => 
                setting.AllSize().Store()
                );

在Application Start中配置便可

GitHub: https://github.com/chsword/ThumbnailServer

 

另外再推薦一個不錯的響應式縮略圖服務,功能很強大,按比例縮放、裁剪圖片均可以經過Querystring來完成,優勢是插件不少,功能強大

地址:http://imageresizing.net

/a.jpg

/a.jpg?w=120

/a.jpg?w=100&h=200

 

以前寫過一篇文章

.NET 響應式自動縮略圖服務器

以後對此Image Server又進行了基於ImageResizer的改寫

  1. 基於.NET
  2. 圖片服務器
  3. 支持縮略圖格式
  4. 基於 ImageResizer

做爲一個Web Server來部署 ResizingServer ,能夠經過更改Web.Config

  <appSettings>
    <add key="UploadRouteUrl" value="api" /><!-- 設置上傳時的Route規則 http://host/{UploadRouteUrl} -->
    <add key="ApiKey" value="48DFD0EE-61A2-4CB5-B1D6-33E917A83202" /><!-- 上傳時所用的ApiKey -->
    <add key="AllowFolders" value="face,images" /><!-- 文件夾/類別 對不一樣業務線存儲不一樣使用不一樣文件夾的狀況 -->
  </appSettings>

 

物理路徑 將相似 upload/face/1508/21/5a020a4161f543f197ddc0965aeeb66d.jpg

目錄結構爲

  • upload
    • category(AllowFolders 中所容許的均可以)
      • yyMM (年和月)
        • dd (天)
          • {guid}.jpg

上傳後返回這樣格式的URL /u/face/b96225af353d15504302a087f4f46bb0151d1c{0}x{1}{2}.jpg 稱之爲FormatUrl

經過 ResizingClient 的轉換能夠轉換爲這樣

/u/face/b96225af353d15504302a087f4f46bb0151d1c100x100c.jpg

Client Demo

 

經過NuGet安裝客戶端

Install-Package ResizingClient

 

上傳圖片代碼

var result=ResizingUtil.Upload(File.ReadAllBytes("d:\\a.jpg"), "a.jpg", "face").Result;
Console.WriteLine(result.FormatUrl);//like /u/face/b96225af353d15504302a087f4f46bb0151d1c{0}x{1}{2}.jpg
//Assert.IsTrue(result.IsSuccess);

 

{0}:寬 {1}:高 {2}:縮略模式

縮略模式:

  • c:crop
  • m:max
  • p:pad

轉化FormatUrl

using ResizingClient;
// ...
var url1 = ResizingUtil.Format(url,100,100,ResizingMode.Pad);
var url1 = ResizingUtil.Format(url,100,100);

 

  

源代碼地址

https://github.com/chsword/ResizingServer

 github已上傳到cnblogs文件

相關文章
相關標籤/搜索