格式为MemoryBmp的Bitmap怎样转化成byte[]?
格式为MemoryBmp的Bitmap怎样转化成byte[]? 数据类型转换 Bitmap --------------------编程问答--------------------public static byte[] BitmapToBytes(Bitmap Bitmap)--------------------编程问答-------------------- 请注意,我说的格式为MemoryBmp这种类型的 --------------------编程问答-------------------- 如果是这种类型的话,就会报出一个异常,提示
{
MemoryStream ms = null;
try
{
ms = new MemoryStream();
Bitmap.Save(ms, Bitmap.RawFormat);
byte[] byteImage = new Byte[ms.Length];
byteImage = ms.ToArray();
return byteImage;
}
catch (ArgumentNullException ex)
{
throw ex;
}
finally
{
ms.Close();
}
}
错误提示:值不能为空
参数名:encoder
--------------------编程问答-------------------- 翠花,上StackTrace。 --------------------编程问答-------------------- ImageFormat只是一个托,在System.Drawing内部还是通过ImageFormat.FindEncoder方法转到ImageCodecInfo那个重载来执行,下面是ILSpy出来的源代码。
// System.Drawing.Imaging.ImageFormat
internal ImageCodecInfo FindEncoder()
{
ImageCodecInfo[] imageEncoders = ImageCodecInfo.GetImageEncoders();
ImageCodecInfo[] array = imageEncoders;
for (int i = 0; i < array.Length; i++)
{
ImageCodecInfo imageCodecInfo = array[i];
if (imageCodecInfo.FormatID.Equals(this.guid))
{
return imageCodecInfo;
}
}
return null;
}
没有找到编码器,是否说明这个编码器需要另外安装?.net4在安装的时候需要一个Windows Imaging组件,是否和那个有关?期待高手继续解答。 --------------------编程问答-------------------- 看看这个帖子:http://social.msdn.microsoft.com/Forums/en-US/da967cea-7e57-4065-9ce9-f7810341aeff/how-to-convert-image-to-bytearray-and-back
补充:.NET技术 , C#