熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

在ASP.NET中上傳圖片並生成縮略圖

2013-11-13 12:19:44  來源: .NET編程 
以下是引用片段
private void btnUploadPicture_Click(object sender SystemEventArgs e)
{
   //檢查上傳文件的格式是否有效
   if(thisUploadFilePostedFileContentTypeToLower()IndexOf(image) < )
   {
    ResponseWrite(上傳圖片格式無效!);
    return;
   }

   //生成原圖
   Byte[] oFileByte = new byte[thisUploadFilePostedFileContentLength];
   SystemIOStream oStream = thisUploadFilePostedFileInputStream;
   SystemDrawingImage oImage = SystemDrawingImageFromStream(oStream);

   int oWidth = oImageWidth; //原圖寬度
   int oHeight = oImageHeight; //原圖高度
   int tWidth = ; //設置縮略圖初始寬度
   int tHeight = ; //設置縮略圖初始高度

   //按比例計算出縮略圖的寬度和高度
   if(oWidth >= oHeight)
   {
    tHeight = (int)MathFloor(ConvertToDouble(oHeight) * (ConvertToDouble(tWidth) / ConvertToDouble(oWidth)));
   }
   else
   {
    tWidth = (int)MathFloor(ConvertToDouble(oWidth) * (ConvertToDouble(tHeight) / ConvertToDouble(oHeight)));
   }

   //生成縮略原圖
   Bitmap tImage = new Bitmap(tWidthtHeight);
   Graphics g = GraphicsFromImage(tImage);
   gInterpolationMode = SystemDrawingDrawingDInterpolationModeHigh; //設置高質量插值法
   gSmoothingMode = SystemDrawingDrawingDSmoothingModeHighQuality;//設置高質量低速度呈現平滑程度
   gClear(ColorTransparent); //清空畫布並以透明背景色填充
   gDrawImage(oImagenew Rectangle(tWidthtHeight)new Rectangle(oWidthoHeight)GraphicsUnitPixel);

   string oFullName = ServerMapPath() + / + o + DateTimeNowToShortDateString()Replace() + DateTimeNowHourToString() + DateTimeNowMinuteToString() + DateTimeNowSecondToString() + DateTimeNowMillisecondToString() + jpg; //保存原圖的物理路徑
   string tFullName = ServerMapPath() + / + t + DateTimeNowToShortDateString()Replace() + DateTimeNowHourToString() + DateTimeNowMinuteToString() + DateTimeNowSecondToString() + DateTimeNowMillisecondToString() + jpg; //保存縮略圖的物理路徑

   try
   {
    //以JPG格式保存圖片
    oImageSave(oFullNameSystemDrawingImagingImageFormatJpeg);
    tImageSave(tFullNameSystemDrawingImagingImageFormatJpeg);
   }
   catch(Exception ex)
   {
    throw ex;
   }
   finally
   {
    //釋放資源
    oImageDispose();
    gDispose();
    tImageDispose();
   }
}  

From:http://tw.wingwit.com/Article/program/net/201311/15670.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.