簡體   English   中英

C#將BitmapImage對象轉換為ByteArray

[英]C# Convert BitmapImage object to ByteArray

如何將BitmapImage類型的對象轉換為字節數組?

網絡上有很多示例,但所有示例都使用Windows Store應用程序不再存在的方法。

我發現的最佳解決方案是此,但是嘗試運行它時在第一行代碼中出現異常

public static byte[] ConvertBitmapToByteArrayAsync(WriteableBitmap bitmap)
{            
    using (var stream = bitmap.PixelBuffer.AsStream())
    {                
        MemoryStream memoryStream = new MemoryStream();
        stream.CopyTo(memoryStream);
        return memoryStream.ToArray();
    }
}

例外:

類型為“ System.AccessViolationException”的第一次機會異常發生在System.Runtime.WindowsRuntime.dll中

附加信息:嘗試讀取或寫入受保護的內存。 這通常表明其他內存已損壞。

從我可以收集的數據來看,它可能與流的大小有關,但我一直無法弄清楚如何解決它。

我希望這可以幫助您:

  // Converting Bitmap to byte array
  private byte[] ConvertBitmapToByteArray(Bitmap imageToConvert)
  {
      MemoryStream ms = new System.IO.MemoryStream();
      imageToConvert.Save(ms, ImageFormat.Png);

      return ms.ToArray();
  }
  // Converting byte array to bitmap
  private Bitmap ConvertBytesToBitmap(byte[] BytesToConvert)
  {
      MemoryStream ms = new MemoryStream(BytesToConvert);
      try { return new Bitmap(ms); }
      catch { return null; }
  }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM