/**//// <summary> /// 获取上传的图片并保存为缩略图 /// </summary> /// <param name="savePath">上传图片的保存路径(包括文件名和文件的扩展名)</param> /// <param name="saveThumbnailPath">缩略图的保存路径(包括文件名和文件的扩展名)</param> /// <param name="objUpImage">允许编程访问服务器上的HTML<input type="file">元素</param> public void CreateThumbnailImage(string savePath,string saveThumbnailPath,HtmlInputFile objUpImage) ...{ string strFileName = System.IO.Path.GetFileName(objUpImage.PostedFile.FileName);//提取文件名 string strExtension=System.IO.Path.GetExtension(strFileName).ToLower(); System.Drawing.Image image; if(strExtension==".gif"|| strExtension==".bmp"||strExtension==".jpg"||strExtension==".jpeg"||strExtension==".png") ...{ image=System.Drawing.Image.FromStream(objUpImage.PostedFile.InputStream); image.Save(savePath,ImageFormat.Jpeg);//保存上传的图片 FrameDimension ImgFrmDim = new FrameDimension( image.FrameDimensionsList[0] ); int nFrameCount = image.GetFrameCount( ImgFrmDim ); decimal width = image.Width; decimal height = image.Height; int newwidth, newheight; if (width > height) ...{ newwidth = 100; newheight = (int)(height / width * 100); } else ...{ newheight = 100; newwidth = (int)(width / height * 100); } for( int i = 0; i < nFrameCount; i++ ) ...{ //所有格式的图片都可用,不是GIF格式的可以认为是只有一帧GIF图片 image.SelectActiveFrame( ImgFrmDim, i );//选择图片第几帧 System.IO. MemoryStream stream=new System.IO.MemoryStream();//先将图片保存在内存中,然后再从内存中获取,再生成缩略图时图片背景就不会变黑 image.Save(stream,ImageFormat.Jpeg);//保存 image=System.Drawing.Image.FromStream(stream);//从内存中获取新的图片 image=image.GetThumbnailImage(newwidth, newheight, null, IntPtr.Zero);//获取缩略图 image.Save( saveThumbnailPath, ImageFormat.Jpeg );//生成缩略图 break;//现在只获取第一帧生成图片,去掉break生成所有帧的图片 } } else ...{ throw new Exception("上传的图片格式不正确!"); } }