将writeableBitmap转换为字节数组时字节数组的大小

时间:2015-03-30 18:01:42

标签: c# arrays silverlight windows-phone-8.1

我在前一个问题中使用此代码将WriteableBitmap转换为字节数组 Converting WriteableBitmap to Byte array - Windows phone 8.1 - Silverlight

public static byte[] ConvertToByteArray(WriteableBitmap writeableBitmap)
{
  using (var ms = new MemoryStream())
  {
    writeableBitmap.SaveJpeg(ms, 
         writeableBitmap.PixelWidth, writeableBitmap.PixelHeight, 0, 100);
    return ms.ToArray();
  }
}

此代码有效,但每次都会返回不同长度的数组。是否有可能每次都获得相同大小的数组?它作为参数获得的writeableBitmaps总是具有相同的大小。

1 个答案:

答案 0 :(得分:1)

Jpeg是压缩的图像格式,所以除非你的输入内容相同,否则你的字节长度会不同(即使是相同大小的图像)。

您的选择:

  • 更新代码以处理可变大小的图像字节
  • 使用非压缩格式(将大大增加数据的大小)
  • 根据数组的最大预期大小填充结尾为0的数据(您可能需要阻止某些图像,否则大小必须与未压缩图像的大小相当)