手机拍的图片有时候会很大,上传上去的时候,展示加载会很慢,这时候我们就需要在上传的时候,同时生成缩略图了,在展示的时候加载缩略图就快很多了,在单独点击的时候,再展示原图
下面附上,上传时生成缩略图的方法
//获取图片的真实路径
string truefilepath = SysConfig.GetFileServerUpload(FilePath);
//设置缩略图的路径
string CopyPath = SysConfig.GetFileServerUpload(CopyPath );
//判断如果缩略图已有当前的路径,则删除
if (File.Exists(CopyPath))
{
File.Delete(CopyPath);
}
Image originalImage = Image.FromFile(truefilepath);
int thumWidth = 600; //缩略图的宽度
int thumHeight = 400; //缩略图的高度
int originalWidth = originalImage.Width; //原始图片的宽度
int originalHeight = originalImage.Height; //原始图片的高度
Image bitmap = new Bitmap(thumWidth, thumHeight);//新建一个bmp图片
Graphics graphic = Graphics.FromImage(bitmap);//新建一个画板
graphic.InterpolationMode = InterpolationMode.High;//设置高质量查值法
graphic.SmoothingMode = SmoothingMode.HighQuality;//设置高质量,低速度呈现平滑程度
graphic.Clear(Color.Transparent);//清空画布并以透明背景色填充
graphic.DrawImage(originalImage, new Rectangle(0, 0, thumWidth, thumHeight), new Rectangle(0, 0, originalWidth, originalHeight), GraphicsUnit.Pixel);//在指定位置并且按指定大小绘制原图片的指定部分
try
{
bitmap.Save(CopyPath, ImageFormat.Jpeg);
}
catch (Exception ex)
{
throw ex;
}
finally
{
originalImage.Dispose();
bitmap.Dispose();
graphic.Dispose();
}
这里缩略图的像素设置为600*400,大小为70K左右