在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1.图片与二进制的转换 图片转换成二进制主要用于数据库存储及图片数据的应用间传输,如网站服务器通过WebService或WCF从数据处理服务器获取图片数据,就可以以二进制形式传输 ///图片转二进制 private byte[] convertByte(Image img) { MemoryStream ms = new MemoryStream(); img.Save(ms, img.RawFormat); //byte[] bytes = new byte[ms.Length]; //ms.Read(bytes, 0, Convert.ToInt32(ms.Length)); //以上两句改成下面两句 byte[] bytes = ms.ToArray(); ms.Close(); return bytes; } ///二进制生成图片 private Image convertImg(byte[] datas) { MemoryStream ms = new MemoryStream(datas); Image img = Image.FromStream(ms, true); ms.Close(); return img; }
2.两种图片加载方式的比较 平常我们一般是这样获取图片的(即以静态文件的方式获取) <img src="Images/sssss.jpg" />
有一种图片加载方式是将内存中的图片数据输出到页面,如下 页面标签 <img src="GetImageHandler.ashx?imgID=sssss" /> 后台代码 GetImageHandler.ashx.cs byte[] file = GetImgData(imgID);//根据图片信息获取图片数据(一般是从服务获取) Response.ContentType = "image/*"; Response.BinaryWrite(file); 或者 Image ci = GetImage(imgID); context.Response.Clear(); context.Response.ContentType = "image/jpeg"; ci.Image.Save(context.Response.OutputStream, ImageFormat.Jpeg); ci.Dispose();
通过ashx获取与直接获取比较 有以下优缺点
下面分别是两种方式的请求耗时图。(图①是内存方式,图②是普通方式) 这种加载方式 页面上最直观的效果就是,在第一秒内图片是空白的,然后突然完全显示出来。而普通方式则是由上往下慢慢显示出来
|
请发表评论