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: 2261 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 |
Link para compartilhar na Internet ou com seus amigos: |
Java ::: Dicas & Truques ::: Data e Hora |
Como adicionar ou subtrair horas à data atual usando o método add() e a constante Calendar.HOUR da classe Calendar do JavaQuantidade de visualizações: 79 vezes |
Nesta dica mostrarei como podemos usar a função add() e a constante Calendar.HOUR da classe Calendar do Java para adicionar ou subtrair horas de uma data. Veja o exemplo a seguir:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package estudos; import java.util.Calendar; public class Estudos { public static void main(String[] args) { // vamos construir uma instância da classe Calendar Calendar agora = Calendar.getInstance(); // vamos exibir a data e hora atuais System.out.println("Data e hora atual: " + agora.getTime().toString()); // adiciona 15 hora à hora atual agora.add(Calendar.HOUR, 13); // mostra a data e hora com as 15 horas adicionadas System.out.println("Daqui a 15 horas: " + agora.getTime().toString()); } } Ao executar este código Java nós teremos o seguinte resultado: Data e hora atual: Mon Jan 16 12:33:26 BRST 2023 Daqui a 15 horas: Tue Jan 17 01:33:26 BRST 2023 Se quisermos subtrair as horas ao invés de adicionar, basta fornecermos um valor negativo para o método add(). |
Java ::: Fundamentos da Linguagem ::: Tipos de Dados |
Como usar null em JavaQuantidade de visualizações: 31601 vezes |
O tipo de dados null é um tipo (ou valor) especial que indica que uma referência não está apontando para nenhum objeto, ou seja, aponta para uma posição de memória nula. Este tipo pode ser atribuído (ou testado) apenas a referências. Seu uso não é permitido com primitivos. Veja um trecho de código no qual definimos que uma variável do tipo String aponta para um objeto nulo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- public class Estudos{ public static void main(String args[]){ String nome = null; System.out.println(nome.length()); System.exit(0); } } Este código compila normalmente. Porém, ao tentarmos executá-lo, temos uma exceção de tempo de execução NullPointerException: Exception in thread "main" java.lang.NullPointerException at Estudos.main(Estudos.java:5) Isso aconteceu porque estamos tentando executar um método de um objeto que não existe. Uma técnica muito valiosa é testar se uma referência não está apontando para um objeto nulo. Veja como isso é feito: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- public class Estudos{ public static void main(String args[]){ String nome = null; if(nome != null) System.out.println(nome.length()); else System.out.println("Objeto é nulo."); System.exit(0); } } Tenha em mente que, quando uma referência recebe o valor null, o objeto para o qual ela apontava fica imediatamente disponível para o coletor de lixo (Garbagge Colector), ou seja, a memória ocupada pelo objeto pode ser liberada a qualquer momento. Veja agora o que acontece quando tentamos atribuir o valor null a um primitivo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- public class Estudos{ public static void main(String args[]){ int valor = null; System.exit(0); } } Eis a mensagem de erro de compilação: Estudos.java:3: incompatible types found : <nulltype> required: int int valor = null; ^ 1 error |
Java ::: Dicas & Truques ::: Formulários e Janelas |
Java Swing para iniciantes - Como adicionar componentes à janela do aplicativo Java SwingQuantidade de visualizações: 15878 vezes |
Embora já exista ferramentas de programação que facilitem bastante a construção de interfaces gráficas, principalmente o editor GUI visual do NetBeans, é importante saber como componentes visuais são adicionados à janela da aplicação Java Swing. Veja, por exemplo, a imagem a seguir: E aqui está o código Java Swing completo a sua criação: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package arquivodecodigos; import java.awt.*; import javax.swing.*; public class Estudos extends JFrame{ public Estudos() { super("Minha primeira aplicação GUI"); // obtém o painel de conteúdo e adiciona // um botão à janela JButton btn = new JButton("Clique Aqui"); getContentPane().add(btn, BorderLayout.NORTH); setSize(350, 250); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } |
Vamos testar seus conhecimentos em Ética e Legislação Profissional |
Postura ética profissional Os princípios éticos que norteiam a prática profissional dos engenheiros não são definidos por uma única entidade ou indivíduo específico. Há diferentes fontes e organizações que estabelecem a conduta ética a ser seguida por esses profissionais. Assinale a alternativa que melhor apresenta essas fontes e organizações, segundo Cocian (2016): A) Organizações profissionais, legislação e regulamentações, instituições de ensino, experiência profissional. B) A Associação Mundial de Engenheiros, o Conselho de Ética, a Sociedade Internacional de Engenheiros e a Federação Internacional de Engenharia (FIE). C) Os códigos de ética redigidos pelas empresas Apple, Microsoft, Google e Amazon. D) As diretrizes éticas de partidos políticos, organizações ambientais, grupos de consumidores e clubes esportivos. E) Os princípios éticos estabelecidos por escritores famosos, celebridades, filósofos antigos e artistas renomados. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Estruturas de Aço e Madeira |
Ações em estruturas: apresentação dos principais carregamentos na análise de estruturas convencionais As variações de temperatura causam ações nas estruturas. Tanto isso é verdade que é recomendado, em lajes com área grande, as tão conhecidas juntas de dilatação para evitar que ocorram fissuras no concreto devido às deformações causadas pelo carregamento térmico. A ação devido às variações de temperatura é classificada como? A) Ação acidental direta. B) Ação permanente indireta. C) Ação permanente direta. D) Ação acidental indireta. E) Ação excepcional. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Hidrologia |
(CEBRASPE - 2024 - ITAIPU - Técnico em Hidrologia) A tabela a seguir apresenta os dados de precipitação mensal, com as respectivas quantidades de ocorrência, coletados em um posto de meteorologia, ao longo de determinado período. A partir dos dados da tabela, é correto afirmar que a média ponderada da precipitação, no período de coleta, foi: A) inferior a 1.000 mm. B) superior a 1.000 mm e inferior a 1.500 mm. C) superior a 1.500 mm e inferior a 2.000 mm. D) superior a 2.000 mm e inferior a 2.500 mm. E) superior a 2.500 mm. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Ética e Legislação Profissional |
Noções de licitação pública Licitação pública é o procedimento por meio do qual a administração pública adquire ou vende bens e contrata serviços. Sobre a licitação pública, assinale a alternativa correta. A) É dever do órgão licitante garantir a igualdade entre os competidores durante todo o certame a fim de assegurar a isonomia, que é um princípio fundamental do processo licitatório. B) Na legislação que regulamenta as licitações, não há previsão para o estabelecimento, nos processos licitatórios, de margem de preferência para bens e serviços com tecnologia desenvolvida no Brasil. C) É prevista em lei a permissão para a realização de licitação cujo objeto inclua bens sem similaridade ou de marcas, de características e de especificações exclusivas, salvo em casos específicos previstos em legislação. D) Na aquisição pública de materiais mediante processo licitatório, a administração pública pode descumprir as normas e as condições do edital, visando à celeridade no recebimento dos materiais. E) A licitação é um procedimento utilizado para dar a oportunidade aos vários interessados em manifestar propostas à administração pública, que, ao final, vai selecionar a considerada mais barata. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em JavaScript |
Qual o resultado da execução do seguinte código JavaScript?document.write(false == '0'); A) 0 B) false C) 1 D) true E) Erro de execução Verificar Resposta Estudar Cards Todas as Questões |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |