Você está aqui: Java ::: Pacote java.awt.image ::: BufferedImage |
Como aumentar ou reduzir o brilho de uma imagem JPG em um BufferedImage do JavaQuantidade de visualizações: 1508 vezes |
Nesta dica mostrarei como carregar uma imagem JPG em um objeto da classe BufferedImage. Em seguida vamos aumentar o seu brilho em 50% e salvá-la com outro nome. Para aumentar ou reduzir o brilho de uma imagem armazenada em um BufferedImage nós podemos usar um objeto da classe RescaleOp e fornecer o fator de aumento ou redução do brilho. Um fator de 1.0f significa que o brilho será de 100%. 1.5f, por exemplo, aumenta o brilho em 50%, enquanto 0.5f reduz o brilho em 50%. O segundo parâmetro fornecido para o construtor da classe RescaleOp representa o contraste entre as cores. Neste exemplo não o estamos usando, por isso o seu valor é 0. Veja o código completo para o exemplo: ---------------------------------------------------------------------- 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.awt.image.RescaleOp; 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\\osmar.jpg")); // vamos aumentar o brilho em 50% // lembre-se: um fator de 1.0 significa 100% de brilho float fator = 1.5f; // criamos um objeto da classe RescaleOp e fornecemos // o fator de brilho. Contraste pode ficar em 0 mesmo RescaleOp rop = new RescaleOp(fator, 0, null); // e aplicamos o filtro à imagem imagem = rop.filter(imagem, null); // e salvamos a imagem com outro nome ImageIO.write(imagem, "jpg", new File("C:\\estudos_java\\osmar2.jpg")); // mostramos uma mensagem de sucesso System.out.println("Imagem salva com sucesso."); } catch(IOException exc){ System.out.println("Erro ao carregar a imagem: " + exc.getMessage()); } } } Execute o código e abra a segunda imagem para constatar se ela realmente está com seu brilho aumentado. |
Link para compartilhar na Internet ou com seus amigos: |
Java ::: Classes e Componentes ::: JTextArea |
Java Swing - Como adicionar mais texto a um JTextArea usando o método append()Quantidade de visualizações: 19662 vezes |
Nesta dica mostrarei como é possível usar o método append() da classe JTextArea para adicionar mais conteúdo a esse controle. Esta é uma técnica muito importante no desenvolvimento de aplicações Java Swing. Segue um exemplo completo (note que fiz toda a aplicação Java Swing na mão mesmo, ou seja, não usei o editor visual do NetBeans ou semelhantes): ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package arquivodecodigos; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Estudos extends JFrame { JTextArea textArea; JTextField texto; JButton btn; public Estudos() { super("Como adicionar texto a um JTextArea"); Container c = getContentPane(); FlowLayout layout = new FlowLayout(FlowLayout.LEFT); c.setLayout(layout); textArea = new JTextArea(10, 20); texto = new JTextField(10); btn = new JButton("Adicionar Texto"); btn.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { textArea.append(texto.getText()); } } ); c.add(textArea); c.add(texto); c.add(btn); setSize(350, 250); setVisible(true); } public static void main(String args[]) { Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } Veja que neste exemplo, mais conteúdo é adicionado ao controle JTextArea sem provocar uma quebra de linha. Em outras dicas e truques dessa seção você aprenderá como isso pode ser feito. |
Java ::: Coleções (Collections) ::: Vector |
Como copiar todos os elementos de um Vector Java para um arrayQuantidade de visualizações: 7949 vezes |
Muitas vezes precisamos obter um array a partir de um Vector. Isso pode ser feito usando-se o método copyInto(). Veja sua assinatura:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- public void copyInto(Object[] anArray) Veja que os elementos do Vector são copiados para as mesmas posições no array. Assim, precisamos ficar atentos. Aqui podemos ter três exceções: NullPointerException (se o array fornecido como argumento for null), IndexOutOfBoundsException (se o array fornecido não for grande o suficiente para acomodar todos os elementos do array) e ArrayStoreException (se o tipo dos elementos do Vector não for de um tipo que pode ser armazenado no array fornecido como argumento). O trecho de código abaixo mostra como copiar todos os elementos de um Vector de String para um array de String: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package estudos; import java.util.*; public class Estudos{ public static void main(String args[]){ // Cria o Vector Vector<String> nomes = new Vector<String>(); // adiciona itens ao Vector nomes.addElement("Osmar"); nomes.addElement("Marcos"); nomes.addElement("Ingrid"); // Cria o array String[] arrayNomes = new String[3]; // copia os elementos do Vector para o array nomes.copyInto(arrayNomes); // Exibe o conteúdo do array for(int i = 0; i < arrayNomes.length; i++){ System.out.println(arrayNomes[i]); } } } Ao executar este código Java nós teremos o seguinte resultado: Osmar Marcos Ingrid |
Java ::: Dicas & Truques ::: Mouse e Teclado |
Java Avançado - Como verificar se a tecla Caps Lock está ativada usando o método getLockingKeyState() da classe Toolkit do JavaQuantidade de visualizações: 11241 vezes |
Nesta dica mostrarei como é possível usar o método getLockingKeyState() da classe Toolkit da linguagem Java para verificar se a tecla Caps Lock estão ou não ativada no seu computador. Note o valor KeyEvent.VK_CAPS_LOCK sendo passado para o método. Veja o código completo para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package arquivodecodigos; import java.awt.Toolkit; import java.awt.event.*; public class Estudos{ public static void main(String[] args){ Toolkit tk = Toolkit.getDefaultToolkit(); if(tk.getLockingKeyState(KeyEvent.VK_CAPS_LOCK)) System.out.println("A tecla Caps Lock está ativada"); else System.out.println("A tecla Caps Lock não está ativada"); System.exit(0); } } Ao executarmos este código você verá uma mensagem parecida com: A tecla Caps Lock está ativada |
Vamos testar seus conhecimentos em Fundações |
Fundações diretas: tipos, características, métodos construtivos e cálculo das tensões no solo Um engenheiro verificou um problema de projeto na planta em uma edificação de grande porte: os pilares estavam muito próximos entre si. Desta forma, ele precisaria indicar ao mestre de obra um tipo de fundação mais apropriado, para não acarretar um problema estrutural devido à aproximidade dos pilares. A partir desta informação, assinale a alternativa correta: A) Radier. B) Sapata associada. C) Bloco. D) Sapata de divisa. E) Sapata corrida. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Instalações Hidráulicas Prediais |
Materiais empregados para instalação de água fria e esgoto A rede de esgoto se divide em primário e secundário. A rede primária é aquela que fica em contato com os gases que vêm da rede externa. Durante a execução das instalações externas e enterradas de esgoto sanitário primário de uma residência, você deverá especificar a tubulação que deverá ser instalada do vaso sanitário até o sistema de coleta público de esgotos. Sobre essa tubulação, assinale a alternativa correta: A) Deverá ser adotada uma tubulação de PVC rígido da série reforçada com DN mínimo de 100mm. B) Deverá ser adotada uma tubulação de cerâmica rígida da série normal com DN máximo de 75mm. C) Deverá ser adotada uma tubulação de PVC rígido da série reforçada com DN máximo de 40mm. D) Deverá ser adotada uma tubulação de PVC rígido da série normal com DN máximo de 40mm. E) Deverá ser adotada uma tubulação de PVC rígido da série normal com DN máximo de 220mm. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Fundações |
Questões de Concurso Engenharia Civil - Fundações COPEL - No estudo do subsolo para projeto de fundações, o número de golpes dados com um peso padrão, caindo em queda livre, de uma altura constante, necessários para a penetração de um amostrador padrão à profundidade de 30cm é denominado: A) Índice coesivo. B) Índice SPT. C) Carga morta. D) Índice de resistência à penetração. E) Carga aparente. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Instalações Hidráulicas Prediais |
Instalações prediais de águas pluviais Um professor de engenharia que gostava de fazer os alunos pensarem ativamente e questionarem a base das tabelas e ábacos fez uma pergunta em classe a partir dos ábacos da NBR 10844 de instalações prediais de águas pluviais: por que os ábacos com saída do tipo aresta viva fornecem maiores diâmetros que as do tipo funil? Cinco principais explicações foram fornecidas pelas classes, mas apenas uma estava correta. Marque a opção que explica corretamente o fenômeno. A) As saídas do tipo aresta viva fornecem maior capacidade de escoamento por permitir maior lâmina de água imediatamente sobre a entrada. B) As saídas do tipo funil geram aumento da perda de carga, ocasionando uma redução da capacidade hidráulica, que é, então, expressa no ábaco. C) As saídas em aresta viva geram uma incorporação de ar indesejada ao escoamento, ocasionando um efeito de sucção que reduz a capacidade hidráulica. D) As saídas do tipo funil necessitam de maior altura até chegar ao diâmetro da tubulação e isso é compensado em relação ao parâmetro L do ábaco. E) As saídas em arestas vivas têm menor perda de carga, o que implica a incorporação de ar com consequente redução da capacidade hidráulica. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Hidrologia |
A Bacia Tocantins-Araguaia é a maior bacia hidrográfica totalmente brasileira. Além da sua importância econômica e ambiental, a referida bacia possui a maior ilha fluvial do mundo. Como é denominada essa ilha? A) Ilha do Marajó. B) Ilha do Bananal. C) Ilha Solteira. D) Ilha do Gurupá. E) Ilha do São Francisco. 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 |