为了改进ASP.Net上传组件的压缩和缩小图片尺寸功能,我们可以使用System.Drawing命名空间中的类来对所上传的图片进行处理,同时利用像Quality和Size等参数,对上传的图像进行调整。
以下是示例代码:
protected void UploadButton_Click(object sender, EventArgs e)
{
if (FileUploadControl.HasFile)
{
try
{
string filename = Path.GetFileName(FileUploadControl.FileName);
string targetPath = Server.MapPath("~/Uploads/") + filename;
FileUploadControl.SaveAs(targetPath);
using (Image sourceImage = Image.FromFile(targetPath))
{
// 定义缩略图的宽度和高度
int thumbWidth = 300;
int thumbHeight = 200;
// 压缩图片
Image thumbnailImage = sourceImage.GetThumbnailImage(thumbWidth, thumbHeight, null, IntPtr.Zero);
// 将压缩后的图片保存到服务器中
thumbnailImage.Save(Server.MapPath("~/Thumbnails/") + filename);
// 显示缩略图
ThumbImage.ImageUrl = "~/Thumbnails/" + filename;
// 删除原始上传的图片
File.Delete(targetPath);
}
}
catch (Exception ex)
{
StatusLabel.Text = "文件上传失败: " + ex.Message;
}
}
}
在这个示例中,我们使用了GetThumbnailImage方法来生成缩略图,并将其保存到服务器中,而原始图片则被删除。可以在代码中调整Width和Height的值来决定缩略图的生成参数。在这个过程中,Quality的值对压缩后的图像质量有着重要的作用。