将 WriteableBitmap 转换为字节数组 - Windows phone 8.1 - Silverlight

Converting WriteableBitmap to Byte array - Windows phone 8.1 - Silverlight

我在网上找到了以下将 WriteableBitmap 转换为字节数组的代码,但此代码不适用于 Silverlight。谁能告诉我需要进行哪些更改才能使其与 Silverlight 一起使用。

byte[] ConvertBitmapToByteArray(WriteableBitmap bitmap)
{
    WriteableBitmap bmp = bitmap;

    using (Stream stream = bmp.PixelBuffer.AsStream())
    {
        MemoryStream memoryStream = new MemoryStream();
        stream.CopyTo(memoryStream);
        return memoryStream.ToArray();
    }
}

它给出了以下错误信息:

'System.Windows.Media.Imaging.WriteableBitmap' does not contain a definition for 'PixelBuffer' and no extension method 'PixelBuffer' accepting a first argument of type 'System.Windows.Media.Imaging.WriteableBitmap' could be found (are you missing a using directive or an assembly reference?)

试试这个:

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

                return ms.ToArray();
            }
        }

我在另一个项目中使用了这个方法。此代码段属于 sara silva

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

msdn documentation