從例子WriteableBitmap的我已經能夠創建BitmapImage的字節數組創建從一個字節數組WPF
public byte[] BufferFromImage(BitmapImage myImageFile)
{
WriteableBitmap btmMap = new WriteableBitmap(BitmapFactory.ConvertToPbgra32Format(myImageFile));
return btmMap.ToByteArray();
}
現在我期待扭轉,但至今都沒有成功,我查了https://writeablebitmapex.codeplex.com其中聲明它可以從一個字節數組創建一個WriteableBitmap,但我沒有找到任何示例。
public WriteableBitmap ByteArrayToImage(Byte[] BArray)
{
var width = 100;
var height = 100;
var dpiX = 96d;
var dpiY = 96d;
var pixelFormat = PixelFormats.Pbgra32;
var bytesPerPixel = (pixelFormat.BitsPerPixel + 7)/8;
var stride = bytesPerPixel * width;
var bitmap = BitmapImage.Create(width, height, dpiX, dpiY, pixelFormat, null, BArray, stride);
WriteableBitmap wbtmMap = new WriteableBitmap(BitmapFactory.ConvertToPbgra32Format(bitmap));
return wbtmMap;
}
這將返回一個錯誤
System.ArgumentException了未處理由用戶代碼 消息=緩衝區大小是不夠的。
我希望有人能指出我朝着正確的方向 歡呼
異常來自哪一行?我認爲它是「BitmapImage.Create」或「new WriteableBitmap」,但這是一個很好的起點。 – 2014-10-06 15:21:07