0

如果我想从字节数组中创建一个图像,有一种方法可以确定我将正确的字节数组传递给 MemoryStream。

MemoryStream mStream = new MemoryStream();
mStream.Write(byteArray, 0, byteArray.Lenth);
Image imgObj = Image.FromStream(mStream);

如果可能,我如何更正byteArray 它是图像的有效 byteArray?

4

4 回答 4

0

这是一个非常不祥的问题,您肯定知道从哪里读取数据吗?使用 创建图像时,如果无法识别格式Image.FromStream,则会抛出 an 。ArgumentException为什么不使用该机制来识别不正确的数据流,而不是重新发明轮子?

于 2010-07-09T09:39:22.667 回答
0

我自己做了一些程序化的图像处理。你要做的就是找到你正在修改的图像格式的规范,并确保你做了所有你应该做的事情。例如 png 文件是分块的,并且每个部分都有校验和,因此如果您更改该块中的某些内容,则必须在该部分的末尾重新计算校验和。

于 2010-07-09T10:18:59.373 回答
0

在阅读了您的问题和评论之后,我认为您正在尝试通过在将其放入 Image 类之前通过操作字节数组来操作图像。现在您声称您的字节数组对于这种图像格式已损坏以及如何纠正它。

所以这个问题的答案是:你破坏了它,你会修复它。

但是要真正解决您的问题,如果您的目标是操作图片本身,只需将其加载到临时文件中Image并使用Graphics该类来操作您的图片。然后将结果放入您喜欢的真实图像对象中。准备就绪,无需任何处理字节数组的麻烦。

于 2010-07-09T10:29:45.033 回答
0

这是使用 C# 和 GDI+ 进行傻瓜图像处理的答案

OT:我不知道如何在评论中添加链接,所以我将其放在答案中。

于 2010-07-09T11:09:36.537 回答