• 大小: 4KB
    文件类型: .java
    金币: 1
    下载: 0 次
    发布日期: 2021-06-08
  • 语言: Java
  • 标签: bmp  java  

资源简介

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

资源截图

代码片段和文件信息

package BMP;

import java.awt.Image;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.awt.image.MemoryImageSource;

import java.io.FileInputStream;
import java.io.FileOutputStream;

import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;

public class BMPReader{

    public String Reader(){  
        Image image;                                    //构造一个目标图
        String result=““;                               //返回结果
 try{
     FileInputStream fs=new FileInputStream(“D:\\图片转换\\3.bmp“);
     int bflen=14;                            
     byte bf[]=new byte[bflen];             
     fs.read(bf0bflen);                        //读取14字节BMP文件头
     int bilen=40;                  
     byte bi[]=new byte[bilen];
     fs.read(bi0bilen);                       //读取40字节BMP信息头

     // 获取一些重要数据
     int nwidth=(((int)bi[7]&0xff)<<24)          //源图宽度
     | (((int)bi[6]&0xff)<<16)
     | (((int)bi[5]&0xff)<<8)
     | (int)bi[4]&0xff;
     System.out.println(“宽:“+nwidth);
            int nheight=(((int)bi[11]&0xff)<<24)        //源图高度
     | (((int)bi[10]&0xff)<<16)
     | (((int)bi[9]&0xff)<<8)
     | (int)bi[8]&0xff;
     System.out.println(“高:“+nheight);
             //位数
     int nbitcount=(((int)bi[15]&0xff)<<8) | (int)bi[14]&0xff;
     System.out.println(“位数:“+nbitcount);
             //源图大小
     int nsizeimage=(((int)bi[23]&0xff)<<24)
     | (((int)bi[22]&0xff)<<16)
     | (((int)bi[21]&0xff)<<8)
     | (int)bi[20]&0xff;
     System.out.println(“源图大小:“+nsizeimage);

             //对24位BMP进行解析
     if(nbitcount==24){
         int npad=(nsizeimage/nheight)-nwidth*3;
         int ndata[]=new int[nheight*nwi

评论

共有 条评论