利用C#來做到圖檔縮圖的方式
- 2008-04-30
- 37045
- 0
在我們利用asp.net的上傳將圖檔傳至server後總是會害怕使用者上傳了一個無敵大的圖檔,雖然可以限制單檔上傳大小,但是使用者不是每個都會使用繪圖軟體會縮圖,所以我們限制使用者不如來幫助使用者自動縮圖。
★注意事項:此篇範例假設您已經製作好相關上傳方式,並且對於程式有一定程度
◆廢話不多說直接來吧,首先在cs檔案上方using以下兩個類別
using System.Drawing.Imaging; using System.Drawing;
◆以下是程式主體(相關的參數請自行撰寫)
System.Drawing.Image image = System.Drawing.Image.FromFile("圖檔的位子"); //必須使用絕對路徑 ImageFormat thisFormat = image.RawFormat; //取得影像的格式 int fixWidth = 0; int fixHeight = 0; //第一種縮圖用 int maxPx = Convert.ToInt16(ConfigurationManager.AppSettings["maxWidth"]); //宣告一個最大值,demo是把該值寫到web.config裡 if (image.Width > maxPx || image.Height > maxPx) //如果圖片的寬大於最大值或高大於最大值就往下執行 { if (image.Width >= image.Height) //圖片的寬大於圖片的高 { fixWidth = maxPx; //設定修改後的圖寬 fixHeight = Convert.ToInt32((Convert.ToDouble(fixWidth) / Convert.ToDouble(image.Width)) * Convert.ToDouble(image.Height)); //設定修改後的圖高 } else { fixHeight = maxPx; //設定修改後的圖高 fixWidth = Convert.ToInt32((Convert.ToDouble(fixHeight) / Convert.ToDouble(image.Height)) * Convert.ToDouble(image.Width)); //設定修改後的圖寬 } } else //圖片沒有超過設定值,不執行縮圖 { fixHeight = image.Height; fixWidth = image.Width; } Bitmap imageOutput = new Bitmap(image, fixWidth, fixHeight); //輸出一個新圖(就是修改過的圖) string fixSaveName = string.Concat("新圖的檔案名稱",".jpg"); //副檔名不應該這樣給,但因為此範例沒有讀取檔案的部份所以demo就直接給啦 imageOutput.Save(string.Concat(Server.MapPath("~/"),fixSaveName), thisFormat); //將修改過的圖存於設定的位子 imageOutput.Dispose(); //釋放記憶體 image.Dispose(); //釋放掉圖檔
?小鋪廢言:利用以上的方式就可以讓指定的圖檔達到縮圖的效果,希望對您有幫助
回應討論