利用C#來做到圖檔縮圖的方式
- 2008-04-30
- 38990
- 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();
//釋放掉圖檔
?小鋪廢言:利用以上的方式就可以讓指定的圖檔達到縮圖的效果,希望對您有幫助








Roslyn 魔法工坊:打造你的 Source Generator [2025-12-20]開課 共7H
回應討論