Visual – BufferedImage, ImageIcon, ImageIO, Url – Java

Publicado: 10 de abril de 2014 em Java

Uma imagem digital é a representação de uma imagem bidimensional usando números binários codificados de modo a permitir seu armazenamento, transferência, impressão ou reprodução, e seu processamento por meios eletrônicos. Há dois tipos fundamentais de imagem digital. Uma é do tipo rastreio (raster) e outra do tipo vetorial. Uma imagem digital do tipo raster, ou bitmap, ou ainda matricial, é aquela que em algum momento apresenta uma correspondência bit-a-bit entre os pontos da imagem raster e os pontos da imagem reproduzida na tela de um monitor.

A imagem vetorial não é reproduzida necessariamente por aproximação de pontos, antes era destinada a ser reproduzida por plotters de traços que reproduziam a imagem por deslocamento de canetas-tinteiro.

Tipicamente, as imagens raster são imagens fotográficas, e as imagens vetoriais são desenhos técnicos de engenharia. Os quadrinhos ilustrados se assemelham em qualidade a imagens raster, mas são impressos em plotters que passaram a imprimir à maneira das impressoras comuns por jato de tinta.

Jimageicon

Image

 

BufferedImage

A subclasse BufferedImage descreve uma imagem com um buffer de acesso de dados de imagem. A BufferedImage é composto de um modelo de cor e um Raster de dados de imagem.

ImageIcon

Uma implementação da interface do ícone que pinta ícones de imagens. Imagens que são criados a partir de uma URL, nome de um arquivo ou da matriz de bytes que são pré-carregados usando o MediaTracker para monitorar o estado de carga da imagem.

ImageIO

Uma classe que contém métodos de conveniência estáticos para localizar os leitores de imagem e gravadores de imagem, e realizar a codificação e decodificação simples.

Url

A classe URL representa um Uniform Resource Locator, um ponteiro para um “recurso” na World Wide Web. Um recurso pode ser algo tão simples como um arquivo ou um diretório, ou pode ser uma referência a um objeto mais complexo, como uma consulta a um banco de dados ou a um motor de busca.

Exemplo:

Neste exemplo carregamos uma imagem cujo sua fonte é uma Url da internet e  a exibimos em um componente de rótulos.

Java

import java.awt.Component;
import java.awt.Container;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.URL;

import javax.imageio.ImageIO;
import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;


public class Imagem 
{
	// Declara componentes
	JLabel rotulo;
	JLabel figura;
	BufferedImage imagem;
	URL url;
	
	public Container criaPainel()
	{
		// Cria painel
		JPanel painel = new JPanel();
		
		// Cria layout
		painel.setLayout(new BoxLayout(painel, BoxLayout.PAGE_AXIS));
		painel.setBorder(BorderFactory.createEmptyBorder(20,20,20,20));
		
		// Cria componentes
		rotulo = new JLabel("Imagem - Picture");		
		
		// Tenta abrir uma imagem de uma url
		try 
		{
			url = new URL("https://desenvolvimentoaberto.files.wordpress.com/2014/04/images.jpg");
			imagem = ImageIO.read(url);		
		}
		catch ( IOException e)
		{			
			e.printStackTrace();
		}
		
		// Cria uma figura e a exibe em um JLabel
		ImageIcon fig = new ImageIcon(imagem);
		figura = new JLabel(fig);		
		
		// Alinha componentes
		rotulo.setAlignmentX(Component.CENTER_ALIGNMENT);
		figura.setAlignmentX(Component.CENTER_ALIGNMENT);
		
		// Adiciona componentes ao painel
		painel.add(rotulo);
		painel.add(Box.createVerticalStrut(10));
		painel.add(figura);		
		
		return painel;
	}
	
	// Cria GUI 
	public static void criaGUI()
	{
		// Cria formulario
		JFrame formulario = new JFrame("DA - Image");
		formulario.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		// cria nova instancia da classe
		Imagem pic = new Imagem();
		
		// Adiciona painel ao formulario
		formulario.setContentPane(pic.criaPainel());
		
		// Adiciona tamanho do formulario
		formulario.setSize(300,290);
		
		// Exibe formulario
		formulario.setVisible(true);
	}

	public static void main(String[] args) {
		
		// Thread do swing
		javax.swing.SwingUtilities.invokeLater(new Runnable() {	
			
			public void run() {
				// Mostra Gui
				criaGUI();				
			}
		});
	}
}
Anúncios
comentários
  1. Como faço para limpar um BufferedImage ?

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

w

Conectando a %s