当前位置:编程学习 > C#/ASP.NET >>

关于asp.net c#图片上传的问题。

代码如下,出现的问题是缩略图反而比原图还要大,请问如何减少缩略图的文件大少呢?谢谢。

protected void btn_upload_Click(object sender, EventArgs e)
{
if (FileUpload1.PostedFile.FileName == "")
{
uploadimg_info.Text = "请选择文件!";
}
else
{
//string filePath = FileUpload1.PostedFile.FileName;
//string filename = filePath.Substring(filePath.LastIndexOf("\\")+1);

string filename = DateTime.Now.ToString("yyyyMMddHHmmss") + FileUpload1.PostedFile.FileName;
string fileType = filename.Substring(filename.LastIndexOf(".") + 1);
if (fileType == "jpg" || fileType == "JPG")
{

string serverPath = Server.MapPath("/img/s3/") + filename;
FileUpload1.PostedFile.SaveAs(serverPath);

System.Drawing.Image bigImg = System.Drawing.Image.FromFile(serverPath);

System.Drawing.Image thumImg = bigImg.GetThumbnailImage(350, 260, null, System.IntPtr.Zero);
thumImg.Save(Server.MapPath("/img/s2/") + filename);
System.Drawing.Image thumImg2 = bigImg.GetThumbnailImage(150, 150, null, System.IntPtr.Zero);
thumImg2.Save(Server.MapPath("/img/s1/") + filename);

bigImg.Dispose();

uploadimg_info.Text = "上传成功!";

if (imgSave.Value == "")
{
imgSave.Value = filename;
}
else
{
imgSave.Value += "," + filename;
}
rpt_filelist.DataSource = imgSave.Value.Split(',');
rpt_filelist.DataBind();

}
else
{
uploadimg_info.Text = "请选择jpg文件!";
}

}
}

补充:请问具体的代码如何写呢?谢谢

答案:如果   Image   包含一个嵌入式缩略图像,则此方法会检索嵌入式缩略图,并将其缩放为所需大小。如果   Image   不包含嵌入式缩略图像,此方法会通过缩放主图像创建一个缩略图像。 

请求的缩略图像大小为 120 x 120 像素时,GetThumbnailImage 方法正常运行。如果从具有嵌入式缩略图的 Image 处请求较大的缩略图像(例如,300 x 300),则缩略图像的质量可能显著降低。通过调用 DrawImage 方法缩放主图像(而非嵌入式缩略图),则效果可能较好。

上一个:asp.net Reapter获得选中行的ID
下一个:ASP.NET中引用文件的问题

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,