Você está aqui: Java ::: Dicas & Truques ::: Imagens e Processamento de Imagens |
Criando thumbnails a partir de suas imagens e salvando-os como JPGQuantidade de visualizações: 9999 vezes |
import com.sun.image.codec.jpeg.*; import java.awt.*; import java.awt.image.*; import java.io.*; public class Estudos{ public static void main(String[] args) throws Exception{ // Carrega a imagem original String mImagem = "foto1.jpg"; // Nome da imagem final (thumbnail) String fImagem = "foto2.jpg"; Image imagem = Toolkit.getDefaultToolkit().getImage(mImagem); MediaTracker mediaTracker = new MediaTracker(new Container()); mediaTracker.addImage(imagem, 0); mediaTracker.waitForID(0); // define a qualidade da imagem int qualidade = 100; // 100% // define a largura e altura do thumbnail int largura = 150; int altura = 80; double thumbRatio = (double)largura / (double)altura; int larguraImagem = imagem.getWidth(null); int alturaImagem = imagem.getHeight(null); double imageRatio = (double)larguraImagem / (double)alturaImagem; if(thumbRatio < imageRatio){ altura = (int)(largura / imageRatio); } else{ largura = (int)(altura * imageRatio); } // Desenha a imagem original para o thumbnail e // redimensiona para o novo tamanho BufferedImage thumbImage = new BufferedImage(largura, altura, BufferedImage.TYPE_INT_RGB); Graphics2D graphics2D = thumbImage.createGraphics(); graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); graphics2D.drawImage(imagem, 0, 0, largura, altura, null); // Salva a nova imagem BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(fImagem)); JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); JPEGEncodeParam param = encoder. getDefaultJPEGEncodeParam(thumbImage); param.setQuality((float)qualidade / 100.0f, false); encoder.setJPEGEncodeParam(param); encoder.encode(thumbImage); out.close(); System.out.println("Pronto. Veja se tudo correu bem."); System.exit(0); } } /* Ao compilar este código temos três avisos: Estudos.java:48: warning: com.sun.image.codec.jpeg.JPEGImageEncoder is Sun propr ietary API and may be removed in a future release JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); ^ Estudos.java:48: warning: com.sun.image.codec.jpeg.JPEGCodec is Sun proprietary API and may be removed in a future release JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); ^ Estudos.java:49: warning: com.sun.image.codec.jpeg.JPEGEncodeParam is Sun propri etary API and may be removed in a future release JPEGEncodeParam param = encoder. ^ 3 warnings Isso acontece porque com.sun.image.codec.jpeg é um pacote proprietário da Sun. Esperamos que ele continue sendo distribuído e essa mensagem desapareça de vez. */ |
![]() |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
Delphi - Como obter o número do registro atual em um TClientDataSet do Delphi usando a propriedade RecNo |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |