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

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

如果可以的话我怎样才能 正确的 byteArray 是否是图像的有效 byteArray?

有帮助吗?

解决方案 4

这是答案用c#和gdi + 的钝化图像处理

ot:我不知道如何在评论中输入链接,所以我把它放在答案中。

其他提示

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

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

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top