压缩后将可写位图转换为byte []数组的最佳方法是什么?

时间:2013-12-21 12:49:17

标签: c# silverlight bitmap compression

我正在使用网络摄像头捕捉银光中的图像。现在我需要将其转换为byte []数组。现在我使用这样的东西:

WriteableBitmap img = e.Result;
int[] p = img.Pixels;
int len = p.Length * 4;
byte[] result = new byte[len]; // ARGB
Buffer.BlockCopy(p, 0, result, 0, len);

然而,所得到的arrray的大小约为2MB,这相当大。我有什么选择来实现更好的压缩? (现在我正在考虑使用一些开源压缩代码并减小凸轮的大小。)

1 个答案:

答案 0 :(得分:0)

您可以使用BitmapEncoder将您的位图编码为jpeg或png。

该文档有一些示例如何使用它。不知道这是否可以在silverlight中使用。

无论如何,使用像https://imagetools.codeplex.com/这样的东西可能是一个好主意,因为这个库应该可以在silverlight下正常工作,而且你不必为解决自己实现的问题而烦恼......