c#将二进制 转换为图片的问题

我写了这样的代码:publicImageBytesToImage(byte[]bytes){MemoryStreamms=newMemoryStream(bytes);I... 我写了这样的代码:
public Image BytesToImage(byte[] bytes)
{
MemoryStream ms = new MemoryStream(bytes);
Image image = new Bitmap(ms,true);
return image;
}
缺在Image image = new Bitmap(ms,true);中报错说 使用无效参数 这是为什么
bytes是用sql 语句
byte[] bytes=(byte[])reader["photo"];
这个有错吗?
展开
 我来答
rightmin
推荐于2016-08-19 · TA获得超过4124个赞
知道大有可为答主
回答量:2199
采纳率:0%
帮助的人:1785万
展开全部
我可以肯定的说你的函数写的没问题,因为我试过了。

FileStream FS = new FileStream("未命名.JPG", FileMode.Open);
BinaryReader BR = new BinaryReader(FS);
byte[] bytes = BR.ReadBytes((Int32)FS.Length);
Image image1 = BytesToImage(bytes);
image1.Save("未命名1.JPG", System.Drawing.Imaging.ImageFormat.Jpeg);

结果是生成了一张和未命名.JPG一样的图片。所以的函数写的没有问题,问题在于你传入的bytes并不是一张图片的二进制数组。

"photo"字段存放的是图片的二进制信息吗?你可以调试一下,看看reader["photo"]里面到底是什么内容。
dragon2snow
2009-05-29 · TA获得超过1099个赞
知道小有建树答主
回答量:1150
采纳率:0%
帮助的人:1129万
展开全部
stream 不包含图像数据,或者为 空引用(在 Visual Basic 中为 Nothing)。

- 或 -

stream 包含一个 PNG 图像文件,其单维大小大于 65,535 像素。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
信息分享
2009-05-29 · TA获得超过152个赞
知道答主
回答量:793
采纳率:0%
帮助的人:213万
展开全部
stream 不包含图像数据,或者为 空引用(在 Visual Basic 中为 Nothing)。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友94f02eb
2009-05-29 · TA获得超过8612个赞
知道大有可为答主
回答量:7955
采纳率:74%
帮助的人:4421万
展开全部
你传入的 bytes 是否是有效的图片数据啊?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式