从示例中我已经能够创建BitmapImage字节数组
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未被用户代码处理 消息=缓冲区大小不足。
我希望有人可以指出我正确的方向 欢呼声
答案 0 :(得分:2)
尝试增加缓冲区的大小...... 缓冲区大小应该像stride * height一样计算。