上传图片并显示缩略图的最简单方法(c#)
private void fileUpload_Click(object sender, System.EventArgs e)
{
// 模拟数据库里取出byte[]再显示缩略,
// 模拟方法:先上传,把stream转成byte[],再把byte[]放在stream里,再输出
// 上传
System.IO.Stream fs = jpgUpload.PostedFile.InputStream;
int nBytes = jpgUpload.PostedFile.ContentLength;
byte[] ByteArray = new byte[nBytes];
int nBytesRead = fs.Read(ByteArray, 0, nBytes);
MemoryStream mBytes = new MemoryStream(ByteArray,0,nBytes);
// 转为stream,处理缩略
System.Drawing.Image _img;
_img = System.Drawing.Image.FromStream(mBytes);
System.Drawing.Image _thumbImg = _img.GetThumbnailImage(Convert.ToInt32(_img.Width* 0.3),Convert.ToInt32( _img.Height * 0.3),null, IntPtr.Zero);
// 显示到客户端
Response.ContentType = this.jpgUpload.PostedFile.ContentType;
MemoryStream MemStream = new MemoryStream();
_thumbImg.Save(MemStream, System.Drawing.Imaging.ImageFormat.Jpeg);
MemStream.WriteTo(Response.OutputStream);
Response.Flush();
}
{
// 模拟数据库里取出byte[]再显示缩略,
// 模拟方法:先上传,把stream转成byte[],再把byte[]放在stream里,再输出
// 上传
System.IO.Stream fs = jpgUpload.PostedFile.InputStream;
int nBytes = jpgUpload.PostedFile.ContentLength;
byte[] ByteArray = new byte[nBytes];
int nBytesRead = fs.Read(ByteArray, 0, nBytes);
MemoryStream mBytes = new MemoryStream(ByteArray,0,nBytes);
// 转为stream,处理缩略
System.Drawing.Image _img;
_img = System.Drawing.Image.FromStream(mBytes);
System.Drawing.Image _thumbImg = _img.GetThumbnailImage(Convert.ToInt32(_img.Width* 0.3),Convert.ToInt32( _img.Height * 0.3),null, IntPtr.Zero);
// 显示到客户端
Response.ContentType = this.jpgUpload.PostedFile.ContentType;
MemoryStream MemStream = new MemoryStream();
_thumbImg.Save(MemStream, System.Drawing.Imaging.ImageFormat.Jpeg);
MemStream.WriteTo(Response.OutputStream);
Response.Flush();
}
注释都在里面,不用说明了吧,重要的是GetThumbnailImage这个方法.
愿一路奔跑不退缩,到目前一直从事.Net的B/S,C/S企业应用研发