日期:2014-05-17  浏览次数:20748 次

|ZYCWPF| C#如何直接将截屏生成byte[],而不是先截成bitmap再转为byte[]呢 谢谢
经常用截屏为:
  Bitmap GetScreen()
        {//截屏
            Bitmap photo = new Bitmap(1024, 768);
            Graphics graphic = Graphics.FromImage(photo);
            graphic.CopyFromScreen(0, 0, 0, 0, new Size(1024, 768));
            return photo;
        }
那如何直接C#从屏幕图像转为byte[]呢?

谢谢
------最佳解决方案--------------------
必须经过image类,因为只有它才支持编码。

photo.Save(Stream, 编码)

------其他解决方案--------------------
这好比画图,如果图不先画出来,怎么转换为字节传输到网络上?二进制本身是没有意义的,要经过一定规则的处理才能成为信息,所以截图也是,肯定是先产生图片,才有二进制字节。如果你想要它的原始字节,那是不行的,因为截屏产生的是内存图片,不存在编码格式,其二进制字节不可用,必须按照一定编码存储后得到的字节才是可用的。