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: 2370 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: 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"); 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 |
Delphi - Como converter strings em valores TDateTime usando as funções StrToDate() e StrToDateDef() do Delphi |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |