获取图片缩略图
protected void btnUpLoadFile_Click(object sender, EventArgs e)
{
//判断上传文件格式是否有效
if (UpLoadFile.PostedFile.ContentType.ToLower().IndexOf("image") < 0)
{
string strAlert = "<script language = 'javascript'>alert('文件格式错误');</script>";
Response.Write(strAlert);
return;
}
//生成原图
Stream oStream = UpLoadFile.PostedFile.InputStream;
System.Drawing.Image oImage = System.Drawing.Image.FromStream(oStream);
//获取原图的Height和Width
int oHeight = oImage.Height;
int oWidth = oImage.Width;
//设置初始时缩略图的Height和Width
int tHeight = 100;
int tWidth = 100;
//按照原始比例计算所略图的Height和Width
if (oWidth > oHeight)
{
tHeight = (int)Math.Floor(Convert.ToDouble(oHeight)/Convert.ToDouble(oWidth)*tWidth);
}
else
{
tWidth = (int)Math.Floor(Convert.ToDouble(oWidth)/Convert.ToDouble(oHeight)*Convert.ToDouble(tHeight));
}
//生成缩略图
Bitmap tImage = new Bitmap(tWidth, tHeight);
Graphics graphic = Graphics.FromImage(tImage);
graphic.InterpolationMode = InterpolationMode.High;//设置高质量插值法
graphic.SmoothingMode = SmoothingMode.HighQuality; ;//设置高质量,低速度呈现平滑程度
graphic.Clear(Color.Transparent);
graphic.DrawImage(oImage, new Rectangle(0, 0, tWidth, tHeight), new Rectangle(0, 0, oWidth, oHeight),
GraphicsUnit.Pixel);
string oFullName = Server.MapPath(".") + "/" + "o" + DateTime.Now.ToShortDateString().Replace("-", "")
+ DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString()
+ DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString() + ".jpg"; //保存原图的物理路径
string tFullName = Server.MapPath(".") + "/" + "t" + DateTime.Now.ToShortDateString().Replace("-", "")
+ DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString()
+ DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString() + ".jpg";//缩略图的物理路径
try
{
oImage.Save(oFullName, System.Drawing.Imaging.ImageFormat.Jpeg);
tImage.Save(tFullName, System.Drawing.Imaging.ImageFormat.Jpeg);
}
catch(Exception ex)
{
string strEx = "<script language = 'javascript'>alert(" + ex.ToString() + ")</script>";
Response.Write(strEx);
}
finally
{
oImage.Dispose();
tImage.Dispose();
graphic.Dispose();
}
}