close

http://demo.tc/post/95

 

protected void Page_Load(object sender, EventArgs e)
{

string[] filePaths = Directory.GetFiles(@"D:\\★Amy★\\20150520\\image\\");
for (int i = 0; i < filePaths.Length; i++)
{
縮圖(filePaths[i]);
//Response.Write(filePaths[i] + "<BR>");
}
}
public void 縮圖(string path)
{
System.Drawing.Image image = System.Drawing.Image.FromFile(path);
//必須使用絕對路徑
ImageFormat thisFormat = image.RawFormat;
//取得影像的格式
int fixWidth = 0;
int fixHeight = 0;
//第一種縮圖用
int maxPx = 180;
//宣告一個最大值,demo是把該值寫到web.config裡
if (image.Width > maxPx || image.Height > maxPx)
//如果圖片的寬大於最大值或高大於最大值就往下執行
{
if (image.Width >= image.Height)
//圖片的寬大於圖片的高
{
fixHeight = maxPx;
//設定修改後的圖高
fixWidth = Convert.ToInt32((Convert.ToDouble(fixHeight) / Convert.ToDouble(image.Height)) * Convert.ToDouble(image.Width));
//設定修改後的圖寬
}
else
{

fixWidth = maxPx;
//設定修改後的圖寬
fixHeight = Convert.ToInt32((Convert.ToDouble(fixWidth) / Convert.ToDouble(image.Width)) * Convert.ToDouble(image.Height));
//設定修改後的圖高
}
}
else
//圖片沒有超過設定值,不執行縮圖
{
fixHeight = image.Height;
fixWidth = image.Width;
}
Bitmap imageOutput = new Bitmap(image, fixWidth, fixHeight);

//輸出一個新圖(就是修改過的圖)
string fixSaveName = string.Concat(DateTime.Now.ToString("yyyyMMddHHmmss"), ".jpg");
//副檔名不應該這樣給,但因為此範例沒有讀取檔案的部份所以demo就直接給啦

imageOutput.Save(string.Concat(Server.MapPath("~/img/"), fixSaveName), thisFormat);
//將修改過的圖存於設定的位子
imageOutput.Dispose();
//釋放記憶體
image.Dispose();
//釋放掉圖檔
}

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 amychang2014 的頭像
    amychang2014

    工作需要筆記

    amychang2014 發表在 痞客邦 留言(0) 人氣()