Java 如何跳过BMP图像的标题部分

Java 如何跳过BMP图像的标题部分,java,bitmap,bufferedimage,javax.imageio,Java,Bitmap,Bufferedimage,Javax.imageio,我需要处理位图图像的主体部分,为此我需要跳过位图图像的标题部分 如何识别位图图像标题占用的字节数?这就是我现在正在做的,但必须有更好的方法: class Test{ public static void main(String ... a){ try{ //I can't find any ideas to skip the header portion of bmp image

我需要处理位图图像的主体部分,为此我需要跳过位图图像的标题部分

如何识别位图图像标题占用的字节数?这就是我现在正在做的,但必须有更好的方法:

class Test{

        public static void main(String ... a){          

        try{
               //I can't find any ideas to skip the header portion of bmp image
                FileInputStream fis=new FileInputStream("C:\\ja\\text1.bmp");


            BufferedImage bi=ImageIO.read(fis);

            ByteArrayOutputStream baos=new ByteArrayOutputStream();
            ImageIO.write(bi,"bmp",baos);

            baos.flush();

            byte [] data=baos.toByteArray();
            baos.close();

            double i=0;

                System.out.print(data.length);  
            while(i<data.length){

                //data[(int)i]=(byte)0xFF;
                if(i>5000d && i<17000d)
                data[(int)i]=0;

                i++;                                    
            }
            //edit it.....

            ByteArrayInputStream bais=new ByteArrayInputStream(data);

            bi=ImageIO.read(bais);

            ImageIO.write(bi,"bmp",new File("C:\\ja\\text2.bmp"));
        }
        catch(Exception e){         
        e.printStackTrace();

        }           

        }
}
类测试{
公共静态void main(字符串…a){
试一试{
//我找不到任何跳过bmp图像标题部分的方法
FileInputStream fis=新的FileInputStream(“C:\\ja\\text1.bmp”);
BuffereImage bi=图像IO.read(fis);
ByteArrayOutputStream bas=新的ByteArrayOutputStream();
图像IO.write(bi,“bmp”,baos);
paos.flush();
字节[]数据=baos.toByteArray();
baos.close();
双i=0;
系统输出打印(数据长度);

while(i5000d&&iMaybe)您应该首先获取文件头的
bOffBits
字段:您正在尝试进行什么处理,为什么需要跳过头?请注意,您不能使用
ImageIO.read(…)
跳过标题后读取图像,因为标题包含确定图像格式、尺寸和图像其他重要方面所需的字节。