MemoryStream mStream = new MemoryStream();
mStream.Write(byteArray, 0, byteArray.Lenth);
Image imgObj = Image.FromStream(mStream);
如果可能的话,我怎么能纠正 byteArray它是一个有效的ImageArray图像?
答案 0 :(得分:0)
这是一个非常不祥的问题,当然你必须知道从哪里读取数据?使用Image.FromStream
创建图像时,如果无法识别格式,则会引发ArgumentException
。为什么不使用该机制来识别不正确的数据流,而不是重新发明轮子?
答案 1 :(得分:0)
我自己做了一些程序化的图像处理。你要做的就是找到你正在修改的图像格式的规范,并确保你应该做的每一件事。例如png文件被分块并且每个部分都有校验和,所以如果你改变那个块中的东西,你必须重新计算该部分末尾的校验和。
答案 2 :(得分:0)
在阅读完您的问题和评论之后,我认为您正在尝试的是在将字节数组放入Image类之前通过操作字节数组来操作图像。现在您声称您的字节数组已损坏此图像格式以及如何纠正它。
所以这个问题的答案就是:你破坏了它,你会解决它。
但要真正解决您的问题,如果您的目标是操纵图片本身,只需将其加载到句点Image
并使用Graphics
类来操纵您的图片。然后将结果放入您喜欢的真实图像对象中。准备好了,没有任何关于字节数组工作的麻烦。
答案 3 :(得分:0)
这是答案Image Processing for Dummies with C# and GDI+
OT:我不知道如何在评论中添加链接,所以我把它放在答案中。