猿问

使用 java.awt.image.BufferedImage 创建 BIFF8 BITMAP

所以我正在创建一个HSSFSheet使用apache poi和自己的低级代码集的背景位图。该https://www.openoffice.org/sc/excelfileformat.pdf声明了Record BITMAP, BIFF8

像素数据(位图的高度线数组,从底线到顶线,见下文)

...

在每一行中,所有像素都是从左到右写入的。每个像素都存储为 3 字节数组:像素颜色的红色、绿色和蓝色分量,按此顺序。通过在最后一个像素后插入零字节,每行的大小与 4 的倍数对齐。

完整声明见PDF图片:

为了实现这一点,我的方法是使用java.awt.image.BufferedImagetype BufferedImage.TYPE_3BYTE_BGR。然后以正确的顺序(从底线到顶线)从该 BufferedImage 的栅格中获取所有字节 RGB,并在宽度(x 方向)上填充到 4 的倍数。

代码有效,但两者之间的部分

// --- this part takes much time but I have not found any better possibility

// ---

需要很多时间,因为需要为每个像素获取 3 个字节的 RGB 才能根据上述奇怪的格式获取它们。

有谁知道更好的方法?也许上面奇怪的格式并没有我想象的那么奇怪,而且已经有其他用法了?


慕尼黑5688855
浏览 296回答 2
2回答
随时随地看视频慕课网APP

相关分类

Java
我要回答