C#关于Image.fromStream()报错 的一些问题.

为了将一个二维字节数组byte[] 转换为image类型的图片 最初我写了以下代码。总是出现一些参数无效的错误

Bitmap btm = new Bitmap(pictureBox1.ImageLocation);      
            byte [] tt=imgproc.GetPixels(btm);

            MemoryStream ms = new MemoryStream( );
       
            Image image = Image.FromStream(ms,true);
            ms.Close();
            string filename = "D:\\124"+System.Drawing.Imaging.ImageFormat.Bmp;
            image.Save(filename);

            pictureBox2.ImageLocation = filename;

imgproc是我编写的一个图像处理类.GetPixeds(btm)它调用C#图像处理库函数将一个位图的像素以数值的形式存在数组中。然后我想将数组又变换为原来的图片,调用Image.FromStream()方法,但是运行的时候总是报错argumentexception(参数无效)。按道理来说应该是行得通的。但是如果细想函数转换的过程我们就会发现这样写错误重重。

1.将图片转为byte[]数组的时候。先要按照灰度计算公式gray=0.3R+0.59G+0.11B 将图片一个像素的连续三个字节转为了一个字节。且在一行像素中,跳过了三个字节的空白区。

2.调用FromStream()的时候,Byte[] 数组中的值已经和原来位图字节值完全

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值