Pessoal,
fiz uma classe para manipulação de imagens, só que na hora de redimensionar ela a imagem naum fica mto boa… por exemplo, envio umas fotos com fundo branco e quero deixar ela em miniatura, aí a foto fica toda pixelada… eh como se ela naum tivesse o efeito anti-alias…
vou mandar o código e alguém ve se consegue me ajudar…
public void redimensiona(int wMax, int hMax) throws IOException {
try {
BufferedImage bufferedImageSource = null;
BufferedImage bufferedImageDest = null;
Image imageSource = null;
File fileSource = new File(source);
imageSource = ImageIO.read(fileSource);
bufferedImageSource = (BufferedImage) imageSource;
int wOrig = bufferedImageSource.getWidth();
int hOrig = bufferedImageSource.getHeight();
double dimensao = calculaDimensao(wMax,hMax,wOrig,hOrig);
int width = (int)(wOrig*dimensao);
int height = (int)(hOrig*dimensao);
bufferedImageDest = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics2D graphics2D = bufferedImageDest.createGraphics();
graphics2D.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
graphics2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
graphics2D.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
//graphics2D.setStroke();
graphics2D.drawImage(imageSource, 0, 0, width, height, null);
BufferedOutputStream out;
out = new BufferedOutputStream(new FileOutputStream(destino));
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bufferedImageDest);
param.setQuality(1.0f, false);
encoder.setJPEGEncodeParam(param);
encoder.encode(bufferedImageDest);
out.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (ImageFormatException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
Valeu!