21三月/120
【自製元件】在 ASP.Net 中取得指定網站縮圖
前言
今天同事有需求需要在 ASP.Net 中可以產生指定網站的縮圖程式,這時候想起之前在某個案子本來有需要使用所以有稍微研究過,但是後來也沒有用上,但是程式都寫好了,就整理了一下把它分享出來囉!這元件主要是參考 Get ASP.NET C# 2.0 Website Thumbnail Screenshot 的程式碼,但是在部分網站在產生縮圖時候會因為 HTML 原因會無法正確產生縮圖,因此我還加上了第二種方式來產生縮圖,如此可以解決掉大部分網站縮圖的問題,希望本元件對於有需求的讀者會有點小幫助囉!
版本記錄
1.0.0 2012/03/21 初版發表
說明
先下載元件並且解壓縮加入參考
這邊以 ASP.Net 網站作為範例,建立兩個 Action:index 和 GetThumb
index 的 View 主要 HTML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<p> <input type="text" name="URL" id="Url" value="http://asp.net/mvc" /> <input type="button" name="submit" id="submit" value="取得縮圖" /><br /> <span id="Loading"></span> <br /> <img id="img" /> <script> $("#submit").click(function () { $("#Loading").text("讀取中..."); $("#img").fadeOut(1000); $("#img").attr("src", "<%=Url.Action("GetThumb") %>?Url=" + $("#Url").val()).load(function(){ $("#Loading").text("讀取完成!"); $("#img").fadeIn(1000); }); }); </script> </p> |
GetThumb 的 Action
1 2 3 4 5 6 7 8 9 10 11 |
public ActionResult GetThumb(string Url) { Bitmap Bmp = ClassWSThumb.GetWebSiteThumbnail(Url, 1024, 768, 400, 300, 15); // 呼叫網站縮圖程式 MemoryStream ms = new MemoryStream(); if (Bmp != null) Bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); else // 產生縮圖失敗時顯示預設的圖片 System.Drawing.Image.FromFile(Server.MapPath("~/Content/NoPriview.jpg")).Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); return File(ms.ToArray(),"image/jpg"); } |
執行結果
執行之後按下取得縮圖就可以取得要的縮圖囉!
結論
本元件大部分程式碼也非我原創,所以也把原始碼放出來,如果有興趣的讀者可以參考寫法把它改善的更好的話,也歡迎再提供給大家喔!
Leave a comment