Classe BufferedImage - INPE

Propaganda
Trabalhando com a Classe BufferedImage
// pacotes do AWT
import java.awt.image.BufferedImage;
import java.awt.image.Raster;
import java.awt.image.WritableRaster;
// leitura em modo imediato - para J2SE 1.4+
import javax.imageio.ImageIO;
// Instanciação de um objeto da classe BufferedImage
BufferedImage ima_in, ima_out;
// Carregando de uma imagem através da classe BufferedImage
BufferedImage ima_in = null;
String image_name = "nemo500-270.jpg";
File file = new File(image_name);
try {
ima_in= ImageIO.read(file);
} catch(Exception e) {
System.out.println("Imagem '" + image_name + "' nao existe.");
System.exit(0);
}
// Lendo informações do cabeçalho de uma imagem aberta
int ncol = ima_in.getWidth();
int nlin = ima_in.getHeight();
int type = ima_in.getType();
// Criando uma imagem de saída através da classe BufferedImage
BufferedImage ima_out = new BufferedImage(ncol, nlin,
BufferedImage.TYPE_BYTE_GRAY); // 10 - TYPE_BYTE_GRAY
// Obtendo acesso aos dados (matriz) de uma BufferedImage
Raster raster = ima_in.getRaster(); // declara e instancia objeto raster só para leitura
WritableRaster wraster = ima_out.getRaster(); // declara e instancia objeto raster para escrita
// Lendo dados das bandas de uma imagem aberta
int r = raster.getSample(x,y,0); // le dado da banda 0 da imagem de entrada
int g = raster.getSample(x,y,1); // le dado da banda 1 da imagem de entrada
int b = raster.getSample(x,y,2); // le dado da banda 2 da imagem de entrada
// Escrevendo dados de uma banda de uma imagem criada
int valor_saida = (r+g+b)/3;
wraster.setSample(x,y,0,valor_saida);
Download