【发布时间】:2010-04-07 10:44:50
【问题描述】:
我有一个长度为 2480 宽度为 3507 的非透明彩色位图。
使用Bitmap.GetPixel(int x, int y)我可以得到位图中每个像素的颜色信息。
如果我将位图喷成字节[]:
MemoryStream ms = new MemoryStream();
bmp.Save(ms, ImageFormat.Bmp);
ms.Position = 0;
byte[] bytes = ms.ToArray();
那么我希望得到相同的信息,即我可以转到 bytes[1000] 并读取该像素的颜色信息。
事实证明,我的字节数组比我预期的要大。我以为我会得到一个包含 2480 x 3507 = 8697360 个元素的数组。相反,我得到了一个包含 8698438 个元素的数组——我认为是某种标题。
我的数组中的字节以什么格式存储?是否有一个 1078 字节长的标头,后跟每个字节元素的 Alpha、Red、Green、Blue 值或其他值?
我只需要每个像素的颜色信息。我不关心标题(或者实际上是透明度),除非我需要它来获取颜色信息。
【问题讨论】: