Bitmap提供了操作像素的方法,。可以通过getPixels方法来获得该图像的饿像素并放到一个数组中,我们处理这个像素数组就可以了,最后通过setPixels设置这个像素数组到Bitmap中。
每一个像素通过4个字节整数来展现:最高位字节用作Alpha通道,即用来实现透明与不透明控制,255代表完全不透明,0则代表完全透明;接下来的一个字节是Red红色通道,255代表完全是红色,一次类推,接下来的两个字节相应的是绿色和蓝色通道
对像素点得读取
bmp格式一个像素点占4个byte,第一个留用,后三个R,G,B
package src;
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("src/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;
rgb[2] = (pixel & 0xff);
System.out.println("i=" + i + ",j=" + j + ":(" + rgb[0] + ","
+ rgb[1] + "," + rgb[2] + ")");
}
}
}
}