C#產生縮圖代碼
來源:互聯網
上載者:User
縮圖 if(fileupload.PostedFile!=null)
{
//addto為要添加的屬性,aboutfile為檔案說明
string nam = fileupload.PostedFile.FileName ;
//取得檔案名稱(抱括路徑)裡最後一個"."的索引
int i= nam.LastIndexOf(".");
//取得副檔名
string newext =nam.Substring(i);
//這裡我自動根據日期和檔案大小不同為檔案命名,確保檔案名稱不重複
DateTime now = DateTime.Now;
string newname=now.DayOfYear.ToString()+fileupload.PostedFile.ContentLength.ToString();
//儲存檔案到你所要的目錄,這裡是IIS根目錄下的upload目錄.你可以改變.
//注意: 我這裡用Server.MapPath()取當前檔案的相對目錄.在asp.net裡"\"必須用"\\"代替,把"upload\\"改成"\\upload\\"就成了取當前檔案的絕對目錄了
fileupload.PostedFile.SaveAs(Server.MapPath("upload\\"+newname+newext));
//得到這個檔案的相關屬性:檔案名稱,檔案類型,檔案大小
//fname.Text=myFile.PostedFile.FileName;
//fenc.Text=myFile.PostedFile.ContentType ;
//fsize.Text=myFile.PostedFile.ContentLength.ToString();
//下面是產生縮圖
System.Drawing.Image image,aNewImage;
int width,height,newwidth,newheight;
image=System.Drawing.Image.FromFile(Server.MapPath("upload/"+newname.ToString()+newext.ToString()));
System.Drawing.Image.GetThumbnailImageAbort callb =new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback);
width=image.Width;
height=image.Height;
if(firstpageshow.SelectedValue.ToString()=="1"&&fenlei.SelectedValue.ToString()=="5")
{
newwidth=203;newheight=86;
newheight=height*newwidth/width;
}
else if(isweekman.SelectedValue.ToString()=="1")
{
newwidth=171;newheight=111;
newheight=height*newwidth/width;
}
else if(firstpageshow.SelectedValue.ToString()=="1"&&fenlei.SelectedValue.ToString()=="3")
{
newwidth=171;newheight=111;
newheight=height*newwidth/width;
}
else
{
newwidth=62;newheight=80;
newheight=height*newwidth/width;
}
aNewImage=image.GetThumbnailImage(newwidth,newheight,callb,new System.IntPtr());
aNewImage.Save(Server.MapPath("upload\\"+"small_"+newname+newext));
image.Dispose();
//產生縮圖 產生並儲存完畢,儲存名是在原圖名前加了一個small_。
pic="upload/"+newname.ToString()+newext.ToString();
smallpic="upload/small_"+newname.ToString()+newext.ToString();
}