Você está aqui: Java ::: Pacote java.awt.image ::: BufferedImage |
Como retornar as cores RGB dos pixels individuais de um BufferedImage do Java usando seu método getRGB()Quantidade de visualizações: 2509 vezes |
|
O método getRGB() da classe BufferedImage da linguagem Java nos oferece uma forma muito conveniente de analisar as cores dos pixels individuais de uma imagem. Este método recebe as coordenadas do pixel que queremos acessar e retorna um valor inteiro contendo as informações RGB (Red, Green, Blue), ou seja, a quantidade de vermelho, verde e azul). No entanto, é preciso lançar mão de algumas operações de manipulação de bits para conseguirmos separar os valores das três cores. No código abaixo eu mostro como isso pode ser feito. Neste código eu desconsiderei a informação da transparência da cor do pixel. Em outra dica eu mostro como isso pode ser obtido também. Então vamos ao código Java. Note que carregamos uma imagem JPG em um BufferedImage e em seguida acessamos o pixel nas coordenadas (0, 0). Depois manipulamos o valor inteiro retornado e extraímos dele a quantidade de vermelho, verde e azul, tanto em decimal quanto em hexadecimal: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
package arquivodecodigos;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class Estudos{
public static void main(String args[]){
// vamos declarar um objeto da classe BufferedImage
BufferedImage imagem = null;
try{
// vamos carregar a imagem
imagem = ImageIO.read(new File("C:\\estudos_java\\imagem.jpg"));
// vamos obter a cor no pixel 0, 0
int cor = imagem.getRGB(0, 0);
// vamos obter a quantidade de vermelho (red)
int vermelho = (cor & 0xff0000) >> 16;
// vamos obter a quantidade de verde (green)
int verde = (cor & 0xff00) >> 8;
// e agora a quantidade de azul
int azul = cor & 0xff;
// e mostramos o resultado em decimal e em hexadecimal
System.out.println("Quantidade de vermelho: " + vermelho +
" ou " + Integer.toHexString(vermelho) + " em hexadecimal");
System.out.println("Quantidade de verde: " + verde +
" ou " + Integer.toHexString(verde) + " em hexadecimal");
System.out.println("Quantidade de azul: " + azul +
" ou " + Integer.toHexString(azul) + " em hexadecimal");
}
catch(IOException exc){
System.out.println("Erro ao carregar a imagem: " +
exc.getMessage());
}
}
}
Ao executar este código Java nós teremos o seguinte resultado: Quantidade de vermelho: 200 ou c8 em hexadecimal Quantidade de verde: 150 ou 96 em hexadecimal Quantidade de azul: 101 ou 65 em hexadecimal |
|
|
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
|
MySQL - Como adicionar horas ao valor de um campo DATETIME ou TIME usando a função ADDTIME() do MySQL |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |




