<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    302班

    java突擊隊
    posts - 151, comments - 74, trackbacks - 0, articles - 14
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理
    在網站開發時,生成縮略圖是一個非常常見和實用的功能.以前在asp里只能借助com組件實現,現在在.net里可以利用框架的強大的類庫輕松實現.下面帖出完整的代碼(帶詳細注釋),參考了網上的一些文章及.net sdk相關內容.QQROOM網絡家園的圖片上傳用到了所有的4種生成方式.

            
    /// <summary>
            
    /// 生成縮略圖
            
    /// </summary>
            
    /// <param name="originalImagePath">源圖路徑(物理路徑)</param>
            
    /// <param name="thumbnailPath">縮略圖路徑(物理路徑)</param>
            
    /// <param name="width">縮略圖寬度</param>
            
    /// <param name="height">縮略圖高度</param>
            
    /// <param name="mode">生成縮略圖的方式</param>    

            public static void MakeThumbnail(string originalImagePath, string thumbnailPath, int width, int height, string mode)
            
    {
                Image originalImage 
    = Image.FromFile(originalImagePath);
                
                
    int towidth = width;
                
    int toheight = height;
            
                
    int x = 0;
                
    int y = 0;
                
    int ow = originalImage.Width;
                
    int oh = originalImage.Height;        

                
    switch (mode)
                
    {        
                    
    case "HW"://指定高寬縮放(可能變形)                
                        break;
                    
    case "W"://指定寬,高按比例                    
                        toheight = originalImage.Height * width/originalImage.Width;
                        
    break;
                    
    case "H"://指定高,寬按比例
                        towidth = originalImage.Width * height/originalImage.Height;                    
                        
    break;        
                    
    case "Cut"://指定高寬裁減(不變形)                
                        if((double)originalImage.Width/(double)originalImage.Height > (double)towidth/(double)toheight)
                        
    {
                            oh 
    = originalImage.Height;
                            ow 
    = originalImage.Height*towidth/toheight;
                            y 
    = 0;
                            x 
    = (originalImage.Width - ow)/2;
                        }

                        
    else
                        
    {
                            ow 
    = originalImage.Width;
                            oh 
    = originalImage.Width*height/towidth;
                            x 
    = 0;
                            y 
    = (originalImage.Height - oh)/2;
                        }

                        
    break;                    
                    
    default :
                        
    break;
                }
        
                
                
    //新建一個bmp圖片
                Image bitmap = new System.Drawing.Bitmap(towidth,toheight);

                
    //新建一個畫板
                Graphics g = System.Drawing.Graphics.FromImage(bitmap);

                
    //設置高質量插值法
                g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;

                
    //設置高質量,低速度呈現平滑程度
                g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;

                
    //清空畫布并以透明背景色填充
                g.Clear(Color.Transparent);        

                
    //在指定位置并且按指定大小繪制原圖片的指定部分
                g.DrawImage(originalImage, new Rectangle(00, towidth, toheight), 
                    
    new Rectangle(x, y, ow,oh),
                    GraphicsUnit.Pixel);

                
    try
                
    {            
                    
    //以jpg格式保存縮略圖
                    bitmap.Save(thumbnailPath, System.Drawing.Imaging.ImageFormat.Jpeg);
                }

                
    catch(System.Exception e)
                
    {
                    
    throw e;
                }

                
    finally
                
    {
                    originalImage.Dispose();
                    bitmap.Dispose();                        
                    g.Dispose();
                }

            }

    主站蜘蛛池模板: 一个人看的www在线观看免费| 中文在线免费观看| 国产大片线上免费观看| 亚洲乱亚洲乱淫久久| 免费的一级黄色片| 亚洲日本一区二区三区在线不卡| 亚洲成AV人影片在线观看| 成人免费视频观看无遮挡| 亚洲av午夜国产精品无码中文字| 成人永久免费高清| 又硬又粗又长又爽免费看 | 国产午夜亚洲不卡| 日本免费人成网ww555在线| 亚洲精选在线观看| 91成人免费观看网站| 亚洲第一成人影院| 久久久受www免费人成| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 全免费a级毛片免费看不卡| 亚洲精品蜜夜内射| 亚洲国产成人精品女人久久久 | 亚洲成人黄色网址| 最近免费中文字幕大全视频| 久久精品国产亚洲AV未满十八 | 亚洲日韩国产精品乱| 国产免费一区二区三区在线观看| 亚洲精品高清视频| 国产精品成人免费一区二区 | 亚洲色成人WWW永久网站| 99热在线观看免费| 国产亚洲美女精品久久久| 日本在线免费观看| 亚洲一久久久久久久久| 国产a v无码专区亚洲av| 午夜理伦剧场免费| 亚洲国产区男人本色| 亚洲欧洲精品无码AV| 99re热免费精品视频观看 | 亚洲国产成人久久精品app| 国产伦一区二区三区免费| 国产免费爽爽视频在线观看|