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: 10100 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 calcular MDC em Delphi C - Como inverter (reverter) o conteúdo de uma string em C usando uma função str_reverse() personalizada |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






