Fala galera.
Estou tentando inserir mais brilho na minha imagem através deste método, contudo ele só me devolve uma imagem preto e branco. Tentei implementar essa função de outras maneiras, usando raster e convertendo a imagem para HSB. Mas nos testes que fiz, me pareceu que eu estava trabalhando somente com um canal de cor, e eu não soube resolver.
O código abaixo dá o brilho na img, contudo apresenta ela em Preto e Branco.
public BufferedImage brilho(float brilho) {
BufferedImage imagem_brilho;
imagem_brilho = cor;
int pixel = 0;
for (int i = 0; i < imagem_brilho.getWidth(); i++) {
for (int j = 0; j < imagem_brilho.getHeight(); j++) {
//Estudar método Color
Color c = new Color(imagem_brilho.getRGB(i, j));
int cinza = ((c.getRed() + c.getGreen() + c.getBlue()) / 3);
pixel = (int) (1 * cinza + brilho);
if (pixel > 256) {
pixel = 256;
} else if (pixel < 0) {
pixel = 0;
}
Color pixel_final = new Color((int) pixel, (int) pixel, (int) pixel);
imagem_brilho.setRGB(i, j, pixel_final.getRGB());
}
}
return imagem_brilho;
}
Meu BufferedImage “cor” vem de:
public BufferedImage imagemColorida(BufferedImage img) {
cor = new BufferedImage(img.getWidth(), img.getHeight(), BufferedImage.TYPE_INT_RGB);
Graphics g = cor.getGraphics();
g.drawImage(img, 0, 0, null);
g.dispose();
return cor;
}