Bom tenho que fazer um “miniPhotoshop” para um trabalho na faculdade está tudo executando e gerando outras imagens
o trabalho contém contraste,brilho,histograma,or,and,soma de duas imagens …
O problema é que quando ele executa mais de uma operação ao invés de utilizar o o buffer inicial ele utiliza o que foi modificado…
contudo não encontrei onde isso esta acontecendo.
[code]public class MinhaImagem {
private BufferedImage bufferImagem; // buffer da imagem de entrada
private ImageIcon imageIcon;
private Image imagem;
private int width;
private int height;
private BufferedImage imagemGerada; // buffer da imagem de saída
private BufferedImage imagemcinza;
private BufferedImage imagemBrilho;
private BufferedImage imagemContraste;
private BufferedImage imagemNegativo;
private BufferedImage imagemAdicao;
private BufferedImage imagemSubtracao;
private JFreeChart histograma; // histograma
private int[][] frequencia = new int[256][3]; // vetor de 256
/*metodos set /get */
/**
* Método de conversão da imagem colorida no padrão RGB (JPEG e GIF) para
* escala de cinza: L = 0.299R + 0.587G + 0.114*B -> cálculo da luminância
*/
public void conversaoRGBEscalaCinza() {
BufferedImage escalaCinza = getBufferImagem(); // buffer para dados da imagem
int red, green, blue; // armazenar os valores do padrão RGB
int luminancia; // armazenar o cálculo da luminância
int altura = getHeight();
int largura = getWidth();
// faz a conversão
for (int c = 0; c < (altura); c++) { //(altura)
for (int l = 0; l < (largura); l++) { //(largura)
Color cor = new Color(escalaCinza.getRGB(l, c));
red = cor.getRed();
green = cor.getGreen();
blue = cor.getBlue();
// cálculo da luminância L
luminancia = (int) ((0.299 * red) + (0.587 * green) + (0.114 * blue));
Color cinza = new Color(luminancia, luminancia, luminancia);
escalaCinza.setRGB(l, c, cinza.getRGB());
}
}
this.imagemcinza = escalaCinza;
}[/code]
bom esse é apenas uma função
já na interface principal ele guarda guarda a imagem
[code]private void botaoCinzaActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
imagem.conversaoRGBEscalaCinza();
caminho = caminho.concat("escalaCinza.jpg");
InterfaceImagem ie = new InterfaceImagem(new ImageIcon
(imagem.getImagemcinza()));
} [/code]
porém ele sempre utiliza o buffer da ultima imagem gerada.
Alguém poderia me ajudar :?: