【发布时间】:2014-10-06 15:17:28
【问题描述】:
从示例中我已经能够创建 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 未被用户代码处理 Message=缓冲区大小不足。
我希望有人能指出我正确的方向 干杯
【问题讨论】:
-
异常起源于哪一行?我假设它是
BitmapImage.Create或new WriteableBitmap,但这是一个很好的起点。
标签: c# wpf bitmapimage writeablebitmap