<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();
                }

            }

    主站蜘蛛池模板: 国产午夜亚洲精品| 国产99在线|亚洲| 香蕉视频在线免费看| 免费A级毛片无码A| 黄人成a动漫片免费网站| 成人亚洲综合天堂| 国产精品免费久久久久久久久| 久久亚洲国产成人精品无码区| 国产特黄一级一片免费| 亚洲情XO亚洲色XO无码| 久久久久国产精品免费免费不卡| 亚洲国产精品久久久久婷婷软件 | 亚洲精品高清无码视频| 成人妇女免费播放久久久| 亚洲VA中文字幕无码一二三区| 久久精品国产免费| 91亚洲性爱在线视频| 黄网址在线永久免费观看| 色老头综合免费视频| 亚洲av无码一区二区乱子伦as| 亚洲免费在线观看视频| 亚洲色丰满少妇高潮18p| 亚洲 另类 无码 在线| 在线观看黄片免费入口不卡| 4444亚洲国产成人精品| 无码视频免费一区二三区 | a毛片免费在线观看| 亚洲精品美女视频| 国产成人无码免费视频97| 精选影视免费在线 | 亚洲导航深夜福利| 亚洲国产主播精品极品网红| 日韩在线永久免费播放| 亚洲a∨无码一区二区| 亚洲成熟xxxxx电影| 日本成人免费在线| 99久久人妻精品免费二区| 亚洲欧美国产精品专区久久| 亚洲精品无码乱码成人 | 国产一区二区三区免费观在线| 亚洲人成综合在线播放|