成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C#實現縮略圖簡單分析

開發 后端
這里介紹C#實現縮略圖,以前,在頁面上C#實現縮略圖必須借助第三方組件。現在,有了.NET,就可以很輕松地C#實現縮略圖。

C#語言有很多值得學習的地方,這里我們主要介紹C#實現縮略圖,包括介紹C#實現縮略圖必須借助第三方組件等方面。

以前,在頁面上C#實現縮略圖必須借助第三方組件。現在,有了.NET,就可以很輕松地C#實現縮略圖。

下面就是C#實現縮略圖的例子。

  1. using System;  
  2. using System.Collections;  
  3. using System.ComponentModel;  
  4. using System.Data;  
  5. using System.Drawing;  
  6. using System.Web;  
  7. using System.Web.SessionState;  
  8. using System.Web.UI;  
  9. using System.Web.UI.WebControls;  
  10. using System.Web.UI.HtmlControls;  
  11. using System.Drawing.Imaging;  
  12. namespace Exam_C  
  13. {  
  14. /// <summary> 
  15. /// ToThumbnailImage 的摘要說明。  
  16. /// </summary> 
  17. public class ToThumbnailImage : System.Web.UI.Page  
  18. {  
  19. /*  
  20. Create By lion  
  21. 2003-05-20 19:00  
  22. Copyright (C) 2004 www.LionSky.Net. All rights reserved.  
  23. Web: http://www.Lionsky.net ;  
  24. Email: lion-a@sohu.com  
  25. */  
  26.  
  27. static Hashtable htmimes=new Hashtable();  
  28. internal readonly string AllowExt = ".jpe|.jpeg|.jpg|.png|.tif|.tiff|.bmp";  
  29.  
  30. #region Web 窗體設計器生成的代碼  
  31. override protected void OnInit(EventArgs e)  
  32. {  
  33. #region htmimes[".jpe"]="image/jpeg";  
  34. htmimes[".jpeg"]="image/jpeg";  
  35. htmimes[".jpg"]="image/jpeg";  
  36. htmimes[".png"]="image/png";  
  37. htmimes[".tif"]="image/tiff";  
  38. htmimes[".tiff"]="image/tiff";  
  39. htmimes[".bmp"]="image/bmp";  
  40. #endregion  
  41. //調用生成縮略圖方法  
  42. ToThumbnailImages("lionsky.jpg","b.gif",300);  
  43. }  
  44. #endregion  
  45.  
  46. #region Helper  
  47.  
  48. /// <summary> 
  49. /// 獲取圖像編碼解碼器的所有相關信息  
  50. /// </summary> 
  51. /// <param name="mimeType">包含編碼解碼器的多用途網際郵件擴充協議 (MIME) 類型的字符串</param> 
  52. /// <returns>返回圖像編碼解碼器的所有相關信息</returns> 
  53. static ImageCodecInfo GetCodecInfo(string mimeType)  
  54. {  
  55. ImageCodecInfo[] CodecInfo = ImageCodecInfo.GetImageEncoders();  
  56. foreach(ImageCodecInfo ici in CodecInfo)  
  57. {  
  58. if(ici.MimeType == mimeType)return ici;  
  59. }  
  60. return null;  
  61. }  
  62.  
  63. /// <summary> 
  64. /// 檢測擴展名的有效性  
  65. /// </summary> 
  66. /// <param name="sExt">文件名擴展名</param> 
  67. /// <returns>如果擴展名有效,返回true,否則返回false.</returns> 
  68. bool CheckValidExt(string sExt)  
  69. {  
  70. bool flag=false;  
  71. string[] aExt = AllowExt.Split(''|'');  
  72. foreach(string filetype in aExt)  
  73. {  
  74. if(filetype.ToLower()==sExt)  
  75. {  
  76. flag = true;  
  77. break;  
  78. }  
  79. }  
  80. return flag;  
  81. }  
  82.  
  83. /// <summary> 
  84. /// 保存圖片  
  85. /// </summary> 
  86. /// <param name="image">Image 對象</param> 
  87. /// <param name="savePath">保存路徑</param> 
  88. /// <param name="ici">指定格式的編解碼參數</param> 
  89. void SaveImage(System.Drawing.Image image,string savePath,ImageCodecInfo ici)  
  90. {  
  91. //設置 原圖片 對象的 EncoderParameters 對象  
  92. EncoderParameters parameters = new EncoderParameters(1);  
  93. parameters.Param[0] = new EncoderParameter(Encoder.Quality, ((long) 90));  
  94. image.Save(savePath, ici, parameters);  
  95. parameters.Dispose();  
  96. }  
  97. #endregion  
  98.  
  99. #region Methods  
  100.  
  101. /// <summary> 
  102. /// 生成縮略圖  
  103. /// </summary> 
  104. /// <param name="sourceImagePath">原圖片路徑(相對路徑)</param> 
  105. /// <param name="thumbnailImagePath">生成的縮略圖路徑,
    如果為空則保存為原圖片路徑(相對路徑)
    </param> 
  106. /// <param name="thumbnailImageWidth">
    縮略圖的寬度(高度與按源圖片比例自動生成)</param> 
  107. public void ToThumbnailImages(string sourceImagePath,
    string thumbnailImagePath,int thumbnailImageWidth)  
  108. {  
  109. string SourceImagePath = sourceImagePath;  
  110. string ThumbnailImagePath = thumbnailImagePath;  
  111. int ThumbnailImageWidth = thumbnailImageWidth;  
  112. string sExt = SourceImagePath.Substring(SourceImagePath.LastIndexOf(".")).ToLower();  
  113. if(SourceImagePath.ToString()==System.String.Empty) 
    throw new NullReferenceException("SourceImagePath is null!");  
  114. if(!CheckValidExt(sExt))  
  115. {  
  116. throw new ArgumentException
    ("原圖片文件格式不正確,支持的格式有[ "+ AllowExt +" ]","SourceImagePath");  
  117. }  
  118. //從 原圖片 創建 Image 對象  
  119. System.Drawing.Image image = System.Drawing.Image.FromFile
    (HttpContext.Current.Server.MapPath(SourceImagePath));  
  120. int num = ((ThumbnailImageWidth / 4) * 3);  
  121. int width = image.Width;  
  122. int height = image.Height;  
  123. //計算圖片的比例  
  124. if ((((double) width) / ((double) height)) >= 1.3333333333333333f)  
  125. {  
  126. num = ((height * ThumbnailImageWidth) / width);  
  127. }  
  128. else  
  129. {  
  130. ThumbnailImageWidth = ((width * num) / height);  
  131. }  
  132. if ((ThumbnailImageWidth < 1) || (num < 1))  
  133. {  
  134. return;  
  135. }  
  136. //用指定的大小和格式初始化 Bitmap 類的新實例  
  137. Bitmap bitmap = new Bitmap(ThumbnailImageWidth, num, PixelFormat.Format32bppArgb);  
  138. //從指定的 Image 對象創建新 Graphics 對象  
  139. Graphics graphics = Graphics.FromImage(bitmap);  
  140. //清除整個繪圖面并以透明背景色填充  
  141. graphics.Clear(Color.Transparent);  
  142. //在指定位置并且按指定大小繪制 原圖片 對象  
  143. graphics.DrawImage(image, new Rectangle(0, 0, ThumbnailImageWidth, num));  
  144. image.Dispose();  
  145. try  
  146. {  
  147. //將此 原圖片 以指定格式并用指定的編解碼參數保存到指定文件  
  148. string savepath = (ThumbnailImagePath==null?SourceImagePath:ThumbnailImagePath);  
  149. SaveImage(bitmap,HttpContext.Current.Server.MapPath(savepath),
    GetCodecInfo((string)htmimes[sExt]));  
  150. }  
  151. catch(System.Exception e)  
  152. {  
  153. throw e;  
  154. }  
  155. finally  
  156. {  
  157. bitmap.Dispose();  
  158. graphics.Dispose();  
  159. }  
  160. }  
  161. #endregion  
  162.  
  163. }  
  164. }  

【編輯推薦】

  1. C#字符ASCII碼學習經驗
  2. C#數值類型之間的轉換概述
  3. 日期型數據轉換成C#長整型數據
  4. C#查看Excel對象模型分析
  5. C#日期型數據簡單剖析
責任編輯:佚名 來源: cnblogs
相關推薦

2013-08-12 15:26:49

測試

2013-12-02 15:07:57

jQuery插件

2009-10-26 17:38:22

VB.NET實現縮略圖

2019-02-15 14:00:57

Linux命令縮略圖

2009-12-07 11:21:59

PHP生成縮略圖

2012-07-18 20:59:40

jQuery

2009-08-28 10:22:13

Windows 7系統故障應對縮略圖無法顯示

2012-01-10 14:59:42

jQuery

2009-08-12 16:33:37

.NET生成縮略圖

2011-07-01 11:18:50

Qt 多線程

2010-01-20 10:29:37

Chrome縮略圖標簽管理

2012-09-20 15:00:38

Win 8操作系統

2009-09-02 18:03:19

C#實現泛型類

2020-11-02 14:49:46

GitHub Java圖片

2022-02-21 16:38:19

Serverless圖片視頻

2023-05-15 17:04:33

Edge瀏覽器

2011-02-21 16:11:45

C#.NET.NET framew

2009-09-01 18:05:17

C#類型聲明

2009-09-01 18:36:35

C#委托實例

2009-08-27 15:34:38

C#命名空間
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲成人午夜电影 | 亚洲一二三区精品 | 天堂一区二区三区四区 | 日韩精品免费在线 | 精品一区二区三区在线观看 | 成人在线观看免费 | 久久精品国产一区二区电影 | 最新中文字幕在线播放 | 欧美成人在线免费 | 国产一区二区 | 91成人 | 天天综合网永久 | 午夜精品久久久久久久久久久久久 | 在线观看免费毛片 | 日韩精品1区2区3区 国产精品国产成人国产三级 | 欧美日韩免费一区二区三区 | 国产成人高清成人av片在线看 | 亚洲欧洲日韩 | 欧美日韩国产在线观看 | 中文字幕在线精品 | 国产一级视频免费播放 | 中文字幕一区二区三区在线观看 | 国产精品久久久亚洲 | 国产一二三区电影 | 日韩一区二区三区视频在线观看 | 欧美bondage紧缚视频 | 精品国产一区二区三区av片 | 精品国产欧美一区二区 | 日日干日日操 | 日韩精品一区二区三区高清免费 | 国产精品免费看 | 久久伦理电影 | 天天影视网天天综合色在线播放 | 欧美一级片a | 涩涩视频大全 | 一二三区av | 欧洲毛片 | 国产成人福利在线观看 | 精品在线免费观看视频 | 精品香蕉一区二区三区 | 国产精品资源在线观看 |