博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 图片处理(压缩、剪裁,转换,优化)
阅读量:7223 次
发布时间:2019-06-29

本文共 1328 字,大约阅读时间需要 4 分钟。

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.两种图片加载方式的比较

平常我们一般是这样获取图片的(即以静态文件的方式获取)

 

有一种图片加载方式是将内存中的图片数据输出到页面,如下

页面标签

后台代码 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获取与直接获取比较 有以下优缺点

  • 优点:便于管理。因为这种方式需要先经过后台处理才返回内容,在后台就可以进行很多操作了,例如判断当前人的权限是否可加载该图片(根据session);判断当前图片如果不存在的话,返回默认图片;在后台给图片加水印。
  • 缺点1:加载速度慢,效率低。毕竟中间多了一个处理的过程,如果网站流量小,对图片加载速度和网站压力没要求倒无所谓了。。。
  • 缺点2:用户体验差。因为这种方式是先在后台获取到图片的完整数据,然后再拉取到页面。

 

下面分别是两种方式的请求耗时图。(图①是内存方式,图②是普通方式)

 这种加载方式  页面上最直观的效果就是,在第一秒内图片是空白的,然后突然完全显示出来。而普通方式则是由上往下慢慢显示出来


 

 

转载于:https://www.cnblogs.com/TiestoRay/p/3347047.html

你可能感兴趣的文章
C++ delete operator做了什么事
查看>>
partproble在RHEL 6下无法更新分区信息
查看>>
linux服务之nfs
查看>>
linux ps命令,查看某进程cpu和内存占用率情况, linux ps命令,查看进程cpu和内存占用率排序。 不指定...
查看>>
iHover – 30+ 纯 CSS 实现的超炫的图片悬停特效
查看>>
Android MediaPlayer 和 NativePlayer 播放格式控制
查看>>
总结一下工作中用到的Mybatis业务逻辑
查看>>
Android图表日历控件组件
查看>>
Linux下的网络环境配置
查看>>
mysql---总体备份和增量备份
查看>>
裸机代码(uboot) : clear bss
查看>>
PHP判断访问者手机移动端还是PC端的函数,亲测好用
查看>>
http://jingyan.baidu.com/article/bad08e1ee14ae409c85121cf.html
查看>>
perf之record
查看>>
C#中的数据格式转换 (未完待更新)
查看>>
启动vsftpd失败
查看>>
yii2组件之下拉框带搜索功能(yii-select2)
查看>>
Java串口通信详解
查看>>
Newtonsoft 自定义输出内容
查看>>
HTML图片元素(标记)
查看>>