// // // Uso de ImageIO com BufferedImage // Vantagens: ve varios tipos de imagens, // da acesso aos elementos de uma imagem e visualiza dado processado import java.io.File; // pacotes do AWT import java.awt.image.BufferedImage; import java.awt.image.Raster; import java.awt.image.WritableRaster; // pacote Swing para definir interface gráfica import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JScrollPane; import javax.swing.ImageIcon; // leitura em modo imediato - para J2SE 1.4+ import javax.imageio.ImageIO; public class ProcessaeMostraImagem extends JFrame { public static void main(String args[]) { // Mostra JFrame decorado pelo Swing JFrame.setDefaultLookAndFeelDecorated(true); // Carrega e Visualiza imagem original String ima_name_in = "Comp453.jpg"; String ima_name_out = "Comp453Proc.jpg"; BufferedImage ima_in, ima_out; ima_in = CarregaImagem(ima_name_in); ProcessaeMostraImagem frame1 = new ProcessaeMostraImagem(); frame1.MostraImagem(ima_in, ima_name_in); // Carrega e processa imagem original e mostra imagem processada ima_out = ProcessaImagem(ima_in); ProcessaeMostraImagem frame2 = new ProcessaeMostraImagem(); frame2.MostraImagem(ima_out, ima_name_out); SalvaImagem(ima_out, ima_name_out); } // public ProcessaeMostraImagem (){ }; public static BufferedImage CarregaImagem(String image_name) { // Associa objeto BufferedImage com BufferedImage ima_in = null; // Carrega imagem File file = new File(image_name); try { ima_in= ImageIO.read(file); } catch(Exception e) { System.out.println("Imagem '" + image_name + "' nao existe."); System.exit(0); } System.out.println("Nome da Imagem: "+image_name+" Tipo da Imagem: "+ima_in.getType()); System.out.println("Tamanho da Imagem: Colunas "+ima_in.getWidth()+" Linhas "+ima_in.getHeight()); return ima_in; } public static void SalvaImagem(BufferedImage dest, String image_name) { try { ImageIO.write(dest, "jpg", new File(image_name)); } catch (Exception e) { System.out.println("Problema gravando arquivo. "); System.exit(0); } } public static BufferedImage ProcessaImagem (BufferedImage ima_in) { // Associa objeto BufferedImage com níveis de cinza (10) BufferedImage ima_out = new BufferedImage(ima_in.getWidth(),ima_in.getHeight(),BufferedImage.TYPE_BYTE_GRAY); // 10 - TYPE_BYTE_GRAY // Recupera matriz das imagens de entrada e saida Raster raster = ima_in.getRaster(); // declara e instancia objeto raster soh para leitura WritableRaster wraster = ima_out.getRaster(); // declara e instancia objeto raster para escrita // Processa valores da imagem de entrada e armazena na imagem de saida int r, g, b, valorn; for(int y=0; y" + image_name); setSize(ima.getWidth()+40, ima.getHeight()+40); setVisible(true); // Encerra a aplicação clicando no "close" setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static int Minimo(int a, int b, int c){ int min=a; if(bmax)max=b; if(c>max)max=c; return max; } }