栅格阵列所需的数据小于BMP文件阵列提供的数据

时间:2015-04-17 09:42:18

标签: java bufferedimage

我声明了我的缓冲图像:

BufferedImage buff = new BufferedImage(width, height,
                    BufferedImage.TYPE_INT_RGB);

int pixel[] = ((DataBufferInt) buff.getRaster().getDataBuffer())
                    .getData();
            System.out.println(pixel.length);

它为pixel[]

提供了所需的栅格数据

我有来自随机访问文件的图像像素数据。但是这个高度和宽度所需的图像数据大于文件给出的图像数据。

1 个答案:

答案 0 :(得分:2)

考虑到它是BMP图像....请处理BMP图像所需的填充....

使用此代码......

        int padding = 0;
        int extra = 0;
        extra = (width * 3) % 4;
        if (extra != 0)
            padding = (4 - extra);

现在在填充像素阵列时跳过这样的填充字节...

random-access-file-object-name.skipBytes(padding);