Você está aqui: Java ::: Dicas & Truques ::: Imagens e Processamento de Imagens

Como carregar uma imagem em um BufferedImage do Java usando o método read() da classe ImageIO

Quantidade de visualizações: 12080 vezes
O método read() da classe ImageIO possui várias assinaturas. Entre elas há uma que aceita um objeto File representando o caminho e nome da imagem a ser carregada. Este método retorna um BufferedImage e atira uma exceção IOException se a imagem não puder ser carregada.

O exemplo abaixo mostra como carregar uma imagem JPG em um BufferedImage usando ImageIO.read():

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

import java.awt.*;
import java.io.*;
import java.awt.image.*;
import java.awt.event.*;
import javax.swing.*;
import javax.imageio.*;

public class Estudos extends JFrame{
  private BufferedImage imagem;
  
  public Estudos() {
    super("Estudos Java");
    
    Container c = getContentPane();
    c.setLayout(new FlowLayout());
	
    JButton btn = new JButton("Carregar Imagem");
    btn.addActionListener(
      new ActionListener(){
        public void actionPerformed(ActionEvent e){
          imagem = null;
          
          try{
            imagem = ImageIO.read(
              new File("imagens/fundo.jpg"));
          }
          catch(IOException exc){
            JOptionPane.showMessageDialog(null, 
              "Erro ao carregar a imagem: " + 
              exc.getMessage());
          }

          if(imagem != null)
            JOptionPane.showMessageDialog(null, 
              "Imagem carregada com sucesso.");
        }
      }
    );

    c.add(btn);
    	
    setSize(400, 300);
    setVisible(true);
  }
  
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}


Link para compartilhar na Internet ou com seus amigos:

Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes)

Exercício Resolvido de Java - Como rotacionar os elementos de um vetor de inteiros n vezes para a direita - Solução usando força-bruta

Quantidade de visualizações: 498 vezes
Pergunta/Tarefa:

Dado o vetor:

// vamos criar um vetor de inteiros
int valores[] = {1, 6, 9, 3, 7, 8, 5, 2};
Escreva um método Java que rotaciona este vetor para a direita um determinado número de casas. A função deverá receber o array e um inteiro indicando o número de rotações, ou seja, o número de vezes que os elementos do vetor serão movimentados para a direita.

Sua saída deverá ser parecida com:

Array na ordem original:
1 6 9 3 7 8 5 2 

Rotação do vetor depois do passo 1:
2 1 6 9 3 7 8 5 

Rotação do vetor depois do passo 2:
5 2 1 6 9 3 7 8 

Rotação do vetor depois do passo 3:
8 5 2 1 6 9 3 7 

Array depois de rotacionar 3 vezes:
8 5 2 1 6 9 3 7
Resposta/Solução:

Veja a resolução comentada deste exercício em Java:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package estudos;

public class Estudos {
  public static void main(String[] args) {
    // vamos criar um vetor de inteiros
    int valores[] = {1, 6, 9, 3, 7, 8, 5, 2};
    
    // mostramos o array na ordem original
    System.out.println("Array na ordem original:");
    exibirVetor(valores);
    
    // vamos rotacionar o array 3 casas para a direita
    valores = rotacionarArray(valores, 3);
    
    // e mostramos o resultado
    System.out.println("Array depois de rotacionar 3 vezes:");
    exibirVetor(valores);
  }
  
  // método usado para exibir o array
  public static void exibirVetor(int []vetor){
    // percorremos cada elemento do vetor
    for (int i = 0; i < vetor.length; i++) {
      System.out.print(vetor[i] + " ");
    }
    System.out.println("\n");
  }
  
  // método que recebe um vetor de inteiros e o rotaciona um
  // determinado número de vezes
  public static int[] rotacionarArray(int[] vetor, int n) {
    // um laço externo que repete a mesma quantidade de n
    for (int i = 0; i < n; i++) {
      // começamos no último elemento e regredimos até
      // o segundo elemento do vetor
      for (int j = vetor.length - 1; j > 0; j--) {
        // avançamos um elemento de cada vez para
        // a direita
        int temp = vetor[j];
        vetor[j] = vetor[j - 1];
        vetor[j - 1] = temp;
      }  

      // mostramos o progresso
      System.out.println("Rotação do vetor depois do passo " + (i + 1) + ":");
      exibirVetor(vetor);
    }
    return vetor;
  }
}

A solução que apresentamos aqui usa a força-bruta, isto é, uma solução não otimizada e pouco recomendada para arrays com um número exagerado de elementos. Por ser força-bruta, o laço interno percorre todos os elementos do vetor, trocando-os de lugares. Em outras dicas do site nós colocamos versões melhoradas deste código.


Java ::: Coleções (Collections) ::: HashMap

Java Collections - Como usar a classe HashMap da linguagem Java

Quantidade de visualizações: 37032 vezes
A classe HashMap, do pacote java.util, é uma das principais implementações da interface Map. Além de fornecer todas as operações opcionais de um map, esta classe permite a inserção de chaves e valores com o valor null. Em realidade, a classe HashMap é bem similar à classe Hashtable, com a diferença que HashMap não é sincronizada (tenha cuidado ao usuá-la em ambiente de múltiplas threads) e permite valores e chaves null.

Veja sua posição na hierarquia de classes Java:

java.lang.Object
  java.util.AbstractMap<K,V>
    java.util.HashMap<K,V>
Esta classe implementa ainda as interfaces Serializable, Cloneable e Map<K,V>. Algumas sub-classes conhecidas são LinkedHashMap e PrinterStateReasons.

O uso principal da classe HashMap é quando queremos associar chaves e valores e, posteriormente, recuperar valores baseados em suas chaves. Veja um exemplo no qual temos cidades e habitantes:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package arquivodecodigos;

import java.util.*;
 
public class Estudos{
  @SuppressWarnings("unchecked")
  public static void main(String[] args){
     
    // cria uma nova instância de HashMap
    HashMap cidadesHabitantes = new HashMap();
     
    // vamos adicionar algumas chaves e seus valores
    cidadesHabitantes.put("Goiânia", new Integer(4334598));
    cidadesHabitantes.put("São Paulo", new Integer(49282768));
    cidadesHabitantes.put("Brasília", new Integer(96736887));   
  
    // vamos obter uma view dos mapeamentos
    Set set = cidadesHabitantes.entrySet();
 
    // obtemos um iterador
    Iterator i = set.iterator();
 
    // e finalmente exibimos todas as chaves e seus valores
    while(i.hasNext()){
      Map.Entry entrada = (Map.Entry)i.next();
      System.out.println("Chave: " + entrada.getKey() + 
        " - Valor: " + entrada.getValue());
    }
 
    System.exit(0);
  }
}

Ao executar este código nós teremos o seguinte resultado:

Chave: Goiânia - Valor: 4334598
Chave: Brasília - Valor: 96736887
Chave: São Paulo - Valor: 49282768

Uma observação importante em relação à classe HashMap é que esta não honra nenhuma ordem específica de seus elementos, ou seja, a ordem dos pares chave-valor em uma operação de exibição pode ser bem diferente da ordem de inserção.


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços

Exercícios Resolvidos de Java - Ler a idade e o peso de 10 pessoas e mostrar a quantidade de pessoas com mais de 80 quilos e a média das idades

Quantidade de visualizações: 1878 vezes
Pergunta/Tarefa:

Escreva um programa Java que receba a idade (como int) e o peso (como double) de 10 pessoas. Em seguida calcule e mostre:

1) A quantidade de pessoas com mais de 80 quilos;
2) A média das idades das pessoas.

Sua saída deve ser parecida com:

Informe a idade da 1.a pessoa: 95
Informe o peso da 1.a pessoa: 83

Informe a idade da 2.a pessoa: 45
Informe o peso da 2.a pessoa: 115

Informe a idade da 3.a pessoa: 83
Informe o peso da 3.a pessoa: 76

Informe a idade da 4.a pessoa: 19
Informe o peso da 4.a pessoa: 79

Informe a idade da 5.a pessoa: 40
Informe o peso da 5.a pessoa: 93

Quantidade de pessoas com mais de 80 quilos: 3
Média das idades das pessoas: 56.4
Resposta/Solução:

Veja a resolução comentada deste exercício usando Java:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package estudos;

import java.util.Scanner;

public class Estudos {
  public static void main(String[] args) {
    // para ler a entrada do usuário
    Scanner entrada = new Scanner(System.in);
    
    int quant_acima_80_kg = 0; // quantidade de pessoas acima de 80 quilos
    int soma_idades = 0; // soma das idades para depois obter a média
    
    // vamos ler os dados das 5 pessoas
    for(int i = 0; i < 5; i++){
      System.out.print("Informe a idade da " + (i + 1) + ".a pessoa: ");
      int idade = Integer.parseInt(entrada.nextLine());
      System.out.print("Informe o peso da " + (i + 1) + ".a pessoa: ");
      double peso = Double.parseDouble(entrada.nextLine());
      
      // vamos somar mais esta idade
      soma_idades = soma_idades + idade;
      
      // esta pessoa possui mais de 80 quilos?
      if(peso > 80){
        // aumenta o contador de pessoas acima de 80 quilos
        quant_acima_80_kg++;  
      }
      
      // adiciona uma quebra de linha
      System.out.println();
    }
    
    // e agora mostramos o resultado
    System.out.println("Quantidade de pessoas com mais de 80 quilos: " + 
      quant_acima_80_kg);
    System.out.println("Média das idades das pessoas: " + (soma_idades / 5.0));
  }
}



Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica

Fórmula de Hazen-Williams

A fórmula de Hazen-Williams (1903) é resultado de um estudo estatístico com grande número de dados experimentais, recomendada para escoamento turbulento de transição, água a 20ºC e diâmetro maior ou igual a 50mm.

Calcule o diâmetro de uma tubulação de aço (C=90), com 1.000m de comprimento e perda de carga de 51m, cuja vazão é de 200l/s.

A) Aproximadamente 0,3m de diâmetro.

B) Aproximadamente 0,4m de diâmetro.

C) Aproximadamente 0,1m de diâmetro.

D) Aproximadamente 0,5m de diâmetro.

E) Aproximadamente 0,2m de diâmetro.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica

Viscosidade dos fluidos

A velocidade é um fator determinante na viscosidade de um fluido. Muitos estudos apresentam o cálculo da viscosidade a partir da velocidade média de um fluido viscoso. Como é chamado o fluido com viscosidade variável com a velocidade em que a tensão de cisalhamento não é diretamente proporcional à taxa de deformação?

A) Fluido compressível.

B) Fluido não compressível.

C) Fluido newtoniano.

D) Fluido não newtoniano.

E) Fluido relativo.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Python

Qual o resultado da execução do seguinte código Python?

valor = 56.21
print("Valor: %.5d" % valor)

A) Valor: 00056

B) Valor: 21

C) Valor: 00056.21

D) Valor: 56

E) Valor: 6.2100
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Ética e Legislação Profissional

Ética profissional, social, política

Se a maior preocupação de Maquiavel é o Estado, poderíamos dizer que isso o situa no presente temporal.

A respeito disto, afirma Sadek (1995, p. 17): "De fato, sua preocupação em todas as suas obras é o Estado. Não o melhor Estado, aquele tantas vezes imaginado, mas que nunca existiu. Mas o Estado real, capaz de impor a ordem".

A partir do trecho citado, assinale a alternativa correta:

A) Para Maquiavel, o tempo presente do Estado deve ser considerado pela ética.

B) Para Maquiavel, a ética está associada ao exercício da ordem.

C) Para Maquiavel, a ética está atrelada a uma idealização da ação na política.

D) Para Maquiavel, a ordem é fruto de um Estado ético.

E) Para Maquiavel, o Estado existe enquanto mantenedor da ética.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Hidrologia

Quantas são as unidades hidrográficas presentes no território do Brasil?

A) 10.

B) 11.

C) 12.

D) 15

E) 26.
Verificar Resposta Estudar Cards Todas as Questões

Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Java

Veja mais Dicas e truques de Java

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware 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 funcionalidadesControle 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
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 40 usuários muito felizes estudando em nosso site.