Personalizar preferências de consentimento

Utilizamos cookies para ajudar você a navegar com eficiência e executar certas funções. Você encontrará informações detalhadas sobre todos os cookies sob cada categoria de consentimento abaixo.

Os cookies que são classificados com a marcação “Necessário” são armazenados em seu navegador, pois são essenciais para possibilitar o uso de funcionalidades básicas do site.... 

Sempre ativo

Os cookies necessários são cruciais para as funções básicas do site e o site não funcionará como pretendido sem eles. Esses cookies não armazenam nenhum dado pessoalmente identificável.

Bem, cookies para exibir.

Cookies funcionais ajudam a executar certas funcionalidades, como compartilhar o conteúdo do site em plataformas de mídia social, coletar feedbacks e outros recursos de terceiros.

Bem, cookies para exibir.

Cookies analíticos são usados para entender como os visitantes interagem com o site. Esses cookies ajudam a fornecer informações sobre métricas o número de visitantes, taxa de rejeição, fonte de tráfego, etc.

Bem, cookies para exibir.

Os cookies de desempenho são usados para entender e analisar os principais índices de desempenho do site, o que ajuda a oferecer uma melhor experiência do usuário para os visitantes.

Bem, cookies para exibir.

Os cookies de anúncios são usados para entregar aos visitantes anúncios personalizados com base nas páginas que visitaram antes e analisar a eficácia da campanha publicitária.

Bem, cookies para exibir.

Pular para o conteúdo

Lendo valores RGB de uma imagem com java

Olá

Programinha para identificar valores RGB e gerar imagens pixel a pixel pelo valor RGB.

[sourcecode lang=”java”]
import java.awt.*;
import java.awt.image.BufferedImage;
import java.awt.image.WritableRaster;
import java.io.File;
import java.io.IOException;
import java.util.*;
import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.event.*;

public class IdentificadorRGB extends JFrame implements MouseMotionListener {

private JLabel l_imagem, l_red, l_green, l_blue, l_r, l_g, l_b;
private BufferedImage imagem,
img_red, img_blue, img_green;
Container c;

IdentificadorRGB() {
super(“Identificador de valores RGB pixel a pixel”);
try {
//Leitura da imagem do disco
imagem = ImageIO.read(new File(“imagem.png”));
img_blue = ImageIO.read(new File(“imagem.png”));
img_red = ImageIO.read(new File(“imagem.png”));
img_green = ImageIO.read(new File(“imagem.png”));
} catch (IOException e) {
e.printStackTrace();
}
getContentPane().setLayout(null);
c = getContentPane();

l_r = new JLabel();
l_r.setBounds(300, 0, 270, 185);
c.add(l_r);

l_g = new JLabel();
l_g.setBounds(300, 190, 270, 185);
c.add(l_g);

l_b = new JLabel();
l_b.setBounds(5, 245, 270, 185);
c.add(l_b);

l_imagem = new JLabel();
l_imagem.setIcon(new ImageIcon(imagem));
l_imagem.setBounds(0, 0, 270, 185);
c.add(l_imagem);

l_red = new JLabel();
l_red.setText(“R:”);
l_red.setBounds(5, 190, 100, 15);
c.add(l_red);

l_green = new JLabel();
l_green.setText(“G:”);
l_green.setBounds(5, 210, 100, 15);
c.add(l_green);

l_blue = new JLabel();
l_blue.setText(“B:”);
l_blue.setBounds(5, 225, 100, 15);
c.add(l_blue);

WritableRaster raster = imagem.getRaster();
int pixels[] = new int[4];
for (int i = 0; i < imagem.getWidth(); i++) for (int j = 0; j < imagem.getHeight(); j++) { raster.getPixel(i, j, pixels); img_red.setRGB(i, j, setR(pixels[0] )); img_green.setRGB(i, j, setG(pixels[1] )); img_blue.setRGB(i, j, setB(pixels[2] )); } c.validate(); l_r.setIcon(new ImageIcon(img_red)); l_g.setIcon(new ImageIcon(img_green)); l_b.setIcon(new ImageIcon(img_blue)); addMouseMotionListener(this); setSize(600, 500); setResizable(false); show(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } /* métodos que transforma valores inteiros do RGB para um numero hexadecimal * * Por exemplo 255,000,255 fica em hexadecimal 0x00FF00FF * * O dois primeiros 00 são valores do ALPHA que é responsavel pela * transparencia * * */ private int setR(int r) { return 0 << 24 | ((r << 16) & 0x00FF0000) | ((0 << 8 ) & 0x0000FF00) | (0 & 0x000000FF); } private int setG(int g) { return 0 << 24 | ((0 << 16) & 0x00FF0000) | ((g << 8 ) & 0x0000FF00) | (0 & 0x000000FF); } private int setB(int b) { return 0 << 24 | ((0 << 16) & 0x00FF0000) | ((0 << 8 ) & 0x0000FF00) | (b & 0x000000FF); } public static void main(String[] args) { new IdentificadorRGB(); } public void mouseDragged(MouseEvent arg0) { } public void mouseMoved(MouseEvent arg0) { WritableRaster raster = imagem.getRaster(); int pixels[] = new int[4]; if (arg0.getX() < imagem.getWidth() && arg0.getY() < imagem.getHeight()) { raster.getPixel(arg0.getX() - 3, arg0.getY() - 23, pixels); //Mostras os valores na tela l_red.setText("R: " + pixels[0] ); l_green.setText("G: " + pixels[1] ); l_blue.setText("B: " + pixels[2] ); } } } [/sourcecode]

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *