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通过其他方式保存下来了是吗?没其他办法? 展开
假设某个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通过其他方式保存下来了是吗?没其他办法? 展开
2个回答
展开全部
有一种方法,可以再把图像变为byte数组:
MemoryStream ms2 = new MemoryStream();
image.Save( ms2, ImgeFormat.Jpeg );// 这里你要手动指定下图片格式
byte[] bs2 = ms2.ToArray();
遗憾的是,这个bs2和bs不完全相同,但经过对比,发现只是图片的文件头信息(前600字节有几处不同)有些许差异(bs2比bs大16个字节),后面的图像数据完全相同。C#的Image类可能有更完整的文件头信息,所以和原始文件不完全相同,我是用一张jpg图片做的实验。
不知道这样你可以接受吗?
MemoryStream ms2 = new MemoryStream();
image.Save( ms2, ImgeFormat.Jpeg );// 这里你要手动指定下图片格式
byte[] bs2 = ms2.ToArray();
遗憾的是,这个bs2和bs不完全相同,但经过对比,发现只是图片的文件头信息(前600字节有几处不同)有些许差异(bs2比bs大16个字节),后面的图像数据完全相同。C#的Image类可能有更完整的文件头信息,所以和原始文件不完全相同,我是用一张jpg图片做的实验。
不知道这样你可以接受吗?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询