像素数据的字节到图像

时间:2018-04-15 07:15:33

标签: c# image-processing

我已经学会了如何将图像的像素数据导出到字节数组,这是我的代码

StringBuilder

我将字节转换为字符串位但让我们忽略它。我想知道的是,如何将像素数据的字节转换为图像?请分享代码和参考。

我已经阅读了很多参考文献,但直到现在我都没有。

编辑:

我的案例摘要,我有Pixel数据的Stride,Width,Height和Byte []。我怎样才能重新构建它以再次感谢

2 个答案:

答案 0 :(得分:1)

相同的代码,但以另一种方式复制。 (您可以读取虚拟图像或使用其他图像构造函数。)

答案 1 :(得分:0)

显然,你的第一步应该是以某种方式将你的文本转换回字节数组,但是你会发现你实际上无法从那些数据创建一个图像。

正如您在评论中已提到的,您的转储二进制块缺少所有标头数据。在将数据转换回图像之前,您需要原始的宽度,高度和像素格式。

此外,如果这是一个索引图像,则会有一个调色板,您也不会保存它。

最后,您将所有数据复制到映像内存中。每行像素将图像保存在内存中,但这些行通常舍入到下一个四个字节的倍数(我认为除了一些索引像素格式外)。这意味着除非您的图像每像素使用四个字节(每像素32位),否则您最终得到的字节可能包含每行末尾的垃圾数据。你不能以任何方式修剪它,这意味着你不仅需要宽度和高度,还需要步幅,然后才能重建图像。

至于如何构建图像,方法几乎相同。您使用正确的尺寸和像素格式制作新图像,使用LockBitsWriteOnly模式打开其支持记忆,然后将数据复制到其中。

我之前在此网站上发布了a full method for that,因此请随时查看。

相关问题