C# byte[]与Image的相互转换
2013-07-24 17:13
417 查看
修改后的代码:
[c-sharp]
view plaincopyprint?
private byte[] convertByte(Image img)
{
MemoryStream ms = new MemoryStream();
img.Save(ms, img.RawFormat);
//byte[] bytes = new byte[ms.Length];
//ms.Read(bytes, 0, Convert.ToInt32(ms.Length));
//以上两句改成下面两句
byte[] bytes = ms.ToArray();
ms.Close();
return bytes;
}
private Image convertImg(byte[] datas)
{
MemoryStream ms = new MemoryStream(datas);
Image img = Image.FromStream(ms,
true);//在这里出错
//流用完要及时关闭
ms.Close();
return img;
}
private byte[] convertByte(Image img)
{
MemoryStream ms = new MemoryStream();
img.Save(ms, img.RawFormat);
//byte[] bytes = new byte[ms.Length];
//ms.Read(bytes, 0, Convert.ToInt32(ms.Length));
//以上两句改成下面两句
byte[] bytes = ms.ToArray();
ms.Close();
return bytes;
}
private Image convertImg(byte[] datas)
{
MemoryStream ms = new MemoryStream(datas);
Image img = Image.FromStream(ms, true);//在这里出错
//流用完要及时关闭
ms.Close();
return img;
}
附: img.Save(ms, img.RawFormat);
下面加一行
ms.Position = 0;
将流的位置置到开始处。
Image.Save方法会将流置到末尾,所以导致读取不到数据。
我写的代码:
private byte[] ConvertImageToByteArray(System.Drawing.Image img)
{
using (System.IO.MemoryStream ms = new MemoryStream())
{
img.Save(ms, img.RawFormat);
return ms.ToArray();
}
}
private System.Drawing.Image ConvertByteArrayToImage(byte[] byteArray)
{
using (MemoryStream ms = new MemoryStream(byteArray))
{
System.Drawing.Image img = System.Drawing.Image.FromStream(ms);
return img;
}
}
调用:
System.Drawing.Image img = System.Drawing.Image.FromFile(@"E:\\John App Doc and Demo\TelerikDemo\web\Images\photo1.jpg");
newC.Picture = ConvertImageToByteArray(img);
[c-sharp]
view plaincopyprint?
private byte[] convertByte(Image img)
{
MemoryStream ms = new MemoryStream();
img.Save(ms, img.RawFormat);
//byte[] bytes = new byte[ms.Length];
//ms.Read(bytes, 0, Convert.ToInt32(ms.Length));
//以上两句改成下面两句
byte[] bytes = ms.ToArray();
ms.Close();
return bytes;
}
private Image convertImg(byte[] datas)
{
MemoryStream ms = new MemoryStream(datas);
Image img = Image.FromStream(ms,
true);//在这里出错
//流用完要及时关闭
ms.Close();
return img;
}
private byte[] convertByte(Image img)
{
MemoryStream ms = new MemoryStream();
img.Save(ms, img.RawFormat);
//byte[] bytes = new byte[ms.Length];
//ms.Read(bytes, 0, Convert.ToInt32(ms.Length));
//以上两句改成下面两句
byte[] bytes = ms.ToArray();
ms.Close();
return bytes;
}
private Image convertImg(byte[] datas)
{
MemoryStream ms = new MemoryStream(datas);
Image img = Image.FromStream(ms, true);//在这里出错
//流用完要及时关闭
ms.Close();
return img;
}
附: img.Save(ms, img.RawFormat);
下面加一行
ms.Position = 0;
将流的位置置到开始处。
Image.Save方法会将流置到末尾,所以导致读取不到数据。
我写的代码:
private byte[] ConvertImageToByteArray(System.Drawing.Image img)
{
using (System.IO.MemoryStream ms = new MemoryStream())
{
img.Save(ms, img.RawFormat);
return ms.ToArray();
}
}
private System.Drawing.Image ConvertByteArrayToImage(byte[] byteArray)
{
using (MemoryStream ms = new MemoryStream(byteArray))
{
System.Drawing.Image img = System.Drawing.Image.FromStream(ms);
return img;
}
}
调用:
System.Drawing.Image img = System.Drawing.Image.FromFile(@"E:\\John App Doc and Demo\TelerikDemo\web\Images\photo1.jpg");
newC.Picture = ConvertImageToByteArray(img);
相关文章推荐
- c# Byte[]、Image、Bitmap 之间的相互转换
- c#获取网络图片 Image和byte[]数组的相互转换
- C# byte数组与Image的相互转换
- [C#] Byte[]、Image、Bitmap 之间的相互转换
- c#之image和byte相互转换
- C# byte[]与Image的相互转换
- [C#] Byte[]、Image、Bitmap 之间的相互转换
- [C#] Byte[]、Image、Bitmap 之间的相互转换
- C# byte数组与Image相互转换的方法
- C# byte数组与Image相互转换的方法
- [C#参考]byte数组和Image的相互转换
- [C#]image与byte数组的相互转换
- C# byte数组与Image的相互转换
- C# byte数组与Image的相互转换
- [C#] Byte[]、Image、Bitmap 之间的相互转换
- 【转】C# byte数组与Image的相互转换
- C#:Image与byte数组的相互转换
- C#byte数组与Image的相互转换实例代码
- [C#] Byte[]、Image、Bitmap 之间的相互转换
- c# Byte[]、Image、Bitmap 之间的相互转换