• C#局域网桌面共享软件制作(三)


    到周末了,继续做这个桌面共享软件,下面是前两篇的链接,

    链接 C#局域网桌面共享软件制作(一) 

    链接 C#局域网桌面共享软件制作(二) 

    通过对图片进行压缩以后,每张图片大小38K左右(win7/1024*768),每秒网络流量175kb/s+。占用的网络还是很大,那我们可以再对其进行压缩。

    压缩用的是.Net提供的GZipStream,需引入using System.IO.Compression; GZipStream的压缩比例大概是20%;

    压缩:

    public static byte[] Compress(byte[] bytes)
            {
                using (MemoryStream ms = new MemoryStream())
                {
                    GZipStream Compress = new GZipStream(ms, CompressionMode.Compress);
                    Compress.Write(bytes, 0, bytes.Length);
                    Compress.Close();
                    return ms.ToArray();
                }
            }

    解压:

    public byte[] Decompress(Byte[] bytes,int len)//因为本例需求,我加了一个参数Len表示实际长度
            {
                try
                {
                    using (MemoryStream tempMs = new MemoryStream())
                    {
                        using (MemoryStream ms = new MemoryStream(bytes,0,len))
                        {
                            GZipStream Decompress = new GZipStream(ms, CompressionMode.Decompress);
                            Decompress.CopyTo(tempMs);
                            Decompress.Close();
                            return tempMs.ToArray();
                        }
                    }
                }
                catch
                {
                    return null;
                }
            }

    需要说明的是解压后返回的流一定要判断是否为空,如果为空就丢弃

    byte[] arr = Decompress(b,len);
    if (arr == null)
        continue;

    解释一下

    C#局域网桌面共享软件制作(二)中CompressImage进行了第一次压缩,然后再用GZipStream进行第二次压缩

    压缩后流量进一步减少,但是其显示的效果不是特别好(还是能看清楚),因为CompressImage方法是有损压缩,会失真。

    如果想要高清画面,就不使用CompressImage,只用GZipStream进行一次压缩吧

    下面是没有经过压缩的图片的大小样例

    文章写的有点乱,请多包涵,如果以后还有其它方法,会继续添加

    源代码链接http://download.csdn.net/detail/oyipiantian/7252741

  • 相关阅读:
    KafkaOffsetMonitor
    锋利的KATANA
    用grunt搭建自动化的web前端开发环境
    网上书店订单功能的实现
    作用域和控制器
    使用CLK.AspNet.Identity提供以角色为基础的访问控制(RBAC)
    ABP日志管理
    .NET开源项目
    服务总线
    Message解析流程(转)
  • 原文地址:https://www.cnblogs.com/liuxiaobo93/p/3675940.html
Copyright © 2020-2023  润新知