c# image的问题

问题描述:假设某个Image是由byte[]构造出来的...byte[]bs=File.ReadAllBytes(图像文件);MemoryStreamms=newMemo... 问题描述:
假设某个Image是由byte[] 构造出来的
...
byte[] bs=File.ReadAllBytes(图像文件);
MemoryStream ms=new MemoryStream(bs);
Image i=Image.FromStream(ms);
...

//现在只根据Image i能找回原本的byte[] bs么?
//如果用Image.save()方法 则还要指定 图片格式
//就算图片格式跟原来一样 保存后的大小也不一样
//所以通过save方法 应该是找不回原来的 byte[] bs了
//所以 我值能把byte[] bs通过其他方式保存下来了是吗?没其他办法?
展开
 我来答
百度网友1c6e06f
2014-02-08 · TA获得超过2894个赞
知道小有建树答主
回答量:695
采纳率:66%
帮助的人:661万
展开全部
有一种方法,可以再把图像变为byte数组:
MemoryStream ms2 = new MemoryStream();

image.Save( ms2, ImgeFormat.Jpeg );// 这里你要手动指定下图片格式
byte[] bs2 = ms2.ToArray();

遗憾的是,这个bs2和bs不完全相同,但经过对比,发现只是图片的文件头信息(前600字节有几处不同)有些许差异(bs2比bs大16个字节),后面的图像数据完全相同。C#的Image类可能有更完整的文件头信息,所以和原始文件不完全相同,我是用一张jpg图片做的实验。
不知道这样你可以接受吗?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lnpy630
2014-02-07 · 超过25用户采纳过TA的回答
知道答主
回答量:66
采纳率:25%
帮助的人:32.5万
展开全部
你载入内存就已经发生了变化,然后再转载入Image对象,肯定更发生了变化,Hash值肯定不相同
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式