嗨,我想把二进制数组转换成位图并在picturebox
中显示图像。我编写了下面的代码,但出现了异常,说明参数无效。
public static Bitmap ByteToImage(byte[] blob)
{
MemoryStream mStream = new MemoryStream();
byte[] pData = blob;
mStream.Write(pData, 0, Convert.ToInt32(pData.Length));
Bitmap bm = new Bitmap(mStream);
mStream.Dispose();
return bm;
}
最佳答案
这实际上取决于blob
中的内容。它是有效的位图格式(如PNG、BMP、GIF等)?如果它是关于位图中的像素的原始字节信息,那么你不能这样做。
它可能有助于在mStream.Seek(0, SeekOrigin.Begin)
行之前使用Bitmap bm = new Bitmap(mStream);
将流倒回开头。
public static Bitmap ByteToImage(byte[] blob)
{
using (MemoryStream mStream = new MemoryStream())
{
mStream.Write(blob, 0, blob.Length);
mStream.Seek(0, SeekOrigin.Begin);
Bitmap bm = new Bitmap(mStream);
return bm;
}
}