C# byte[]与Image的相互转换

  1. 修改后的代码:

    [c-sharp] view plain copy print ?
    1. private byte[] convertByte(Image img) 
    2.         { 
    3.             MemoryStream ms = new MemoryStream(); 
    4.             img.Save(ms, img.RawFormat); 
    5.             //byte[] bytes = new byte[ms.Length]; 
    6.             //ms.Read(bytes, 0, Convert.ToInt32(ms.Length)); 
    7.             //以上两句改成下面两句 
    8.               byte[] bytes = ms.ToArray(); 
    9.             ms.Close(); 
    10.             return bytes; 
    11.         } 
    12.         private Image convertImg(byte[] datas) 
    13.         { 
    14.             MemoryStream ms = new MemoryStream(datas); 
    15.             Image img = Image.FromStream(ms, true);//在这里出错 
    16.               //流用完要及时关闭 
    17.               ms.Close(); 
    18.             return img; 
    19.         }  

    附:         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);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值