java读取图片问题

来源:百度知道 编辑:UC知道 时间:2024/06/06 16:31:35
我建立了一个File文件,File file = new File("e:\\1\\4.bmp");调用BufferedImage bi = ImageIO.read(file);读取这个图片,读取一个灰度图片,这个图片的像素值只有255和0组成,调用System.out.print(bi.getRGB(jw, ih));输出图片的像素值,但是255通过上面的程序输出后是-1,0输出的是(-16777216)。这是怎么回事啊?怎么才能得到255和0呢?

import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import java.io.*;

public class Test{
public static void main(String args[]) {
int[] rgb = new int[3];

File file = new File("a.bmp");
BufferedImage bi=null;
try{
bi = ImageIO.read(file);
}catch(Exception e){
e.printStackTrace();
}

int width=bi.getWidth();
int height=bi.getHeight();
int minx=bi.getMinX();
int miny=bi.getMinY();
System.out.println("width="+width+",height="+height+".");
System.out.println("minx="+minx+",miniy="+miny+".");

for(int i=minx;i<width;i++){
for(int j=miny;j<height;j++){
//System.out.print(bi.getRGB(jw, ih));
int pixel=bi.getRGB(i, j);
rgb[0] = (pixel & 0xff0000 ) >> 16 ;
rgb[1] = (pixel & 0xff00 ) >> 8 ;
rg