`
security
  • 浏览: 376659 次
  • 来自: www.pgp.org.cn
社区版块
存档分类
最新评论

Java读取BMP文件

阅读更多

各位老大,帮我看看代码

         //  The DataInputStream allows you to read in 16 and 32 bit numbers
        DataInputStream in  =   new  DataInputStream(instream);
        DataOutputStream out
= new  DataOutputStream(outstream);

        
//  Verify that the header starts with 'BM'
         if  (in.read()  !=   ' B ' {
            
throw   new  IOException( " Not a .BMP file " );
        }

        out.write(
' B ' );
        
        
if  (in.read()  !=   ' M ' {
            
throw   new  IOException( " Not a .BMP file " );
        }

        out.write(
' M ' );
        
        
//      Get the total file size
         int  fileSize  =  intelInt(in.readInt());
        out.writeInt(intelInt(fileSize));

        
//      Skip the 2 16-bit reserved words
        out.writeShort(in.readUnsignedShort());
        out.writeShort(in.readUnsignedShort());

        
int  bitmapOffset  =  intelInt(in.readInt());
        out.writeInt(intelInt(bitmapOffset));
        
int  bitmapInfoSize  =  intelInt(in.readInt());
        out.writeInt(intelInt(bitmapInfoSize));
        
        
int  width  =  intelInt(in.readInt());
        out.writeInt(intelInt(width));
        
int  height  =  intelInt(in.readInt());
        out.writeInt(intelInt(height));
        
//  Skip the 16-bit bitplane size
        out.writeShort(in.readUnsignedShort());
        
int  bitCount  =  intelShort(in.readUnsignedShort());
        out.writeShort(intelShort(bitCount));
        
int  compressionType  =  intelInt(in.readInt());
        out.writeInt(intelInt(compressionType));
        
int  imageSize  =  intelInt(in.readInt());
        out.writeInt(intelInt(imageSize));
//  Skip pixels per meter
        out.writeInt(in.readInt());
        out.writeInt(in.readInt());

        
int  colorsUsed  =  intelInt(in.readInt());
        out.writeInt(intelInt(colorsUsed));
        
int  colorsImportant  =  intelInt(in.readInt());
        out.writeInt(intelInt(colorsImportant));
        System.out.println(
" [colorused]= " + colorsUsed);

//  Read the pixels from the stream based on the compression type
         if  (compressionType  ==  BI_RGB)  {
            
if  (bitCount  ==   24 {
                readRGB24(width, height, in, out);
            }

        }
 
    }


     protected   static   void  readRGB24( int  width,  int  height,
        DataInputStream in, OutputStream out)
    
throws  IOException
    
{

//  Start storing at the bottom of the array
         for  ( int  h  =  height - 1 ; h  >=   0 ; h -- {
         
for  ( int  w  =   0 ; w  <  width; w ++ {

//  Read in the red, green, and blue components
           int  red  =  in.read();
          
int  green  =  in.read();
          
int  blue  =  in.read();
          out.write(red);
          out.write(green);
          out.write(blue);
            }

        }

    }
分享到:
评论

相关推荐

    用java读取bmp格式图片文件

    通过读取bmp格式文件的数据格式,用数组合理的读取后,重新画出该图片

    java语言读取bmp文件

    ### Java语言读取BMP文件的关键知识点 #### 1. BMP文件格式理解 BMP(Bitmap)是一种位图文件格式,主要用于Windows操作系统中存储图像数据。它由文件头、信息头、颜色表以及实际的像素数据四部分组成。在处理BMP...

    Java读写BMP文件测试工程

    编译器环境 IntelliJ IDEA 2020.3.2 x64 JDK版本 java version "1.8.0_111" Java(TM) SE Runtime Environment (build 1.8.0_111-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)

    java 实现 bmp 转 jpg

    1. **读取BMP文件**:使用Java的`java.awt.image.BufferedImage`类来读取BMP文件。BMP文件的图像数据是按行存放的,每行数据可能需要填充以保持字节对齐。 ```java FileInputStream fis = new FileInputStream(...

    java关于BMP位图文件解析的分析与实现[源码][附图]

    实现这个过程,我们可以创建一个Java类,包含解析和显示BMP文件的方法。首先,使用`java.io.RandomAccessFile`来读取文件的各个部分。然后,将读取到的数据转化为图像的像素数组。最后,可以利用Java的`java.awt....

    JAVA读写BMP图像函数

    JAVA读写BMP图像函数

    bmp文件读出为txt文件, txt文件写入为bmp文件

    本文将详细讨论如何从BMP文件读取数据并将其转换为TXT文本文件,以及如何将TXT文件的数据重新写入为BMP文件。这两个过程涉及到二进制与文本之间的转换,这对于理解计算机数据处理和文件格式至关重要。 首先,我们来...

    Java读取所有色bmp图片格式

    本篇文章将深入讲解如何使用Java来读取不同颜色深度的BMP图像,包括1位、4位、8位和24位的BMP文件,并介绍一个名为`BmpUtil`的工具类。 首先,我们需要理解BMP文件的基本结构。BMP文件由文件头、信息头和像素数据三...

    按文件读取BMP位图

    1. **打开文件**:使用编程语言(如C++、Python或Java)的文件操作函数打开BMP文件。 2. **读取文件头**:BMP文件头包含两个部分:BITMAPFILEHEADER(BFH)和BITMAPINFOHEADER(BIH)。BFH包含文件的基本信息,如...

    BMP文件采样读取缩略图.rar

    在编程实现时,可以使用各种编程语言,如C++、Python、Java等,都有现成的库支持BMP文件的读写,如C++的OpenCV库,Python的PIL库等。这些库通常已经封装好了文件解析和图像处理的复杂操作,开发者只需调用相应的API...

    java对bmp格式图象的处理.rar_bmp java_bmp处理_java .bmp

    要读取和写入BMP文件,你需要使用`ImageIO`类的`read()`和`write()`方法,配合`FileInputStream`和`FileOutputStream`进行输入输出操作。例如,以下代码展示了如何读取和显示一个BMP图像: ```java import javax....

    读取并显示bmp文件的制作流程

    本篇文章将详细阐述如何读取并显示BMP文件的制作流程,旨在帮助初学者理解BMP文件的结构以及如何利用编程语言实现显示。 1. **BMP文件结构** BMP文件由两部分组成:文件头和图像数据。文件头包含信息如文件大小、...

    利用java实现画图板和保存读取BMP格式的图片(一)

    6. **I/O流处理**:使用Java的FileInputStream和FileOutputStream,我们可以读写BMP文件。在保存图像时,我们需要按照BMP文件的格式规范将BufferedImage的数据写入文件。而在读取时,我们需要从文件中读取数据并创建...

    bmp文件格式分析及其编程

    C++中可以利用文件流操作直接读取BMP文件,Python则可以借助PIL(Pillow)库轻松处理图像,Java则有Java AWT和Swing库提供支持。编写代码时,需要注意内存管理和数据类型的选择,确保正确地处理不同平台和字节序的...

    JAVA BMP解码 超详细解释

    本文将深入探讨JAVA如何对BMP文件进行解码,包括文件头、信息头、调色板和像素数据等关键部分。 1. **文件头(File Header)** BMP文件头是文件的第一个部分,通常包含14个字节,用于标识文件类型和图像数据的位置...

    bmp格式图片转换为raw格式

    读取BMP文件时,需要处理不同字节序的问题,因为BMP文件可能是小端或大端格式。写入RAW文件时,确保数据顺序正确,与相机传感器的输出一致。 转换完成后,RAW文件可以被图像处理软件或自定义算法用于进一步分析或...

    java实现上传文件类型检测过程解析

    在 Java 中,可以使用 FileInputStream 读取文件的二进制数据,并将其转换为十六进制字符串。然后,使用 HashMap 缓存文件头信息,通过文件头信息来判断文件的真正类型。 以下是 Java 实现上传文件类型检测过程解析...

    DCM文件转为bmp文件

    这些库提供了读取和操作DCM文件,以及创建和写入BMP文件的功能。 7. **错误处理与兼容性**:转换过程中可能会遇到各种问题,如文件格式不正确、元数据错误等,需要有适当的错误处理机制。此外,考虑不同版本的DCM...

    读取bmp图片输出RGB值

    3. **读取像素数据**:使用编程语言(如Python、C++或Java)的文件操作函数读取图像数据。每读取3个字节,我们就可以得到一个像素的RGB值。 4. **输出到TXT**:将读取到的RGB值写入TXT文件,可以采用逗号分隔每组...

    java读取DDS图片文件类库

    支持将DDS图像数据转换为BufferedImage,以便在GUI程序中...可以简单地认为这些dds文件同bmp、tga等常见的图片格式一样,记录了一张图片的信息,如果我们在photoshop中使用dds的插件,就可以在photoshop中打开这些文件。

Global site tag (gtag.js) - Google Analytics