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

Size of byte array while converting writeableBitmap to byte array

我在上一个问题中得到了将 WriteableBitmap 转换为字节数组的代码

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

此代码有效,但它每次都是 returns 不同长度的数组。是否有可能每次都得到相同大小的数组?它作为参数获取的 writeableBitmaps 始终具有相同的大小。

Jpeg 是压缩图像格式,因此除非您的输入始终具有相同的内容,否则您将获得不同的字节长度(即使对于相同大小的图像)。

您的选择:

  • 更新代码以处理可变大小的图像字节
  • 使用非压缩格式(会显着增加数据大小)
  • 根据数组的最大预期大小在末尾用 0 填充数据(您可能必须屏蔽一些图像,否则大小必须与未压缩图像的大小相当)