2011-12-19 133 views
1

我正在尝试手动读取位图。所以我使用文件流来读取位图文件。直到我不得不处理24位位图文件时才出现问题。有没有一种方法可以将24位图像实际读入24位数组?24位数据类型数组保存24位位图文件

我在一个字节数组这样

byte[] fileBufferArray = new byte[fileLength]; 
+1

你能更具体吗? 24位阵列是什么意思?你现在对于不同的位图文件有什么代码,以及它如何处理24位图? – 2011-12-19 14:51:33

+0

@klijo - 24位数组是3个8位数组。我会在这个问题上做更多的研究。这听起来像你不了解24位位图文件的设计结构。我只知道你能理解你不明白的事实。 – 2011-12-19 15:03:26

回答

0

持有8位位图图像有几个选项:

  1. 如果你不是太担心内存(你没有大量或非常大的位图打开),则可以将其存储为32位数字。通常,第四个字节然后被解释为“alpha”(在背景上呈现图像时的混合说明符)。大多数现代图像处理库现在都以这种方式处理彩色图像。

  2. 您可以将颜色打包到字节数组中并单独访问它们。 RGB和BGR是两种最常见的包装订单。通常,您最终还会在每行末尾添加填充字节,以便以字节为单位的宽度与DWORD(4字节)边界对齐。

  3. 您可以将图像分割为三个独立的字节数组'平面',它们基本上分别是红色,绿色和蓝色的8位图像。这是进行图像处理时的另一种常见格式,因为您的过滤步骤通常独立于通道进行操作。