opa… fiz um method pra redimensionar imagens proporcionalmente e derepente pd ser util pra alguém…
um abraço a todos…
/**
* Faz redimensionamento da imagem conforme os parâmetros imgLargura e imgAltura mantendo a proporcionalidade.
* Caso a imagem seja menor do que os parâmetros de redimensionamento, a imagem não será redimensionada.
*
* @param caminhoImg caminho e nome da imagem a ser redimensionada.
* @param imgLargura nova largura da imagem após ter sido redimensionada.
* @param imgAltura nova altura da imagem após ter sido redimensionada.
*
* @return Não há retorno
* @throws Exception Erro ao redimensionar imagem
************************************************************************************************************/
public static void setImagemDimensao (String caminhoImg, Integer imgLargura, Integer imgAltura) throws Exception
{
Double novaImgLargura = null;
Double novaImgAltura = null;
Double imgProporcao = null;
Graphics2D g2d = null;
BufferedImage imagem = null, novaImagem = null;
//--- Obtém a imagem a ser redimensionada ---
imagem = ImageIO.read(new File(caminhoImg));
//--- Obtém a largura da imagem ---
novaImgLargura = (double) imagem.getWidth();
//--- Obtám a altura da imagem ---
novaImgAltura = (double) imagem.getHeight();
//--- Verifica se a altura ou largura da imagem recebida é maior do que os ---
//--- parâmetros de altura e largura recebidos para o redimensionamento ---
if (novaImgLargura >= imgLargura)
{
imgProporcao = (novaImgAltura / novaImgLargura);//calcula a proporção
novaImgLargura = (double) imgLargura;
//--- altura deve <= ao parâmetro imgAltura e proporcional a largura ---
novaImgAltura = (novaImgLargura * imgProporcao);
//--- se altura for maior do que o parâmetro imgAltura, diminui-se a largura de ---
//--- forma que a altura seja igual ao parâmetro imgAltura e proporcional a largura ---
while (novaImgAltura > imgAltura)
{
novaImgLargura = (double) (--imgLargura);
novaImgAltura = (novaImgLargura * imgProporcao);
}
}
else if (novaImgAltura >= imgAltura)
{
imgProporcao = (novaImgLargura / novaImgAltura);//calcula a proporção
novaImgAltura = (double) imgAltura;
//--- se largura for maior do que o parâmetro imgLargura, diminui-se a altura de ---
//--- forma que a largura seja igual ao parâmetro imglargura e proporcional a altura ---
while (novaImgLargura > imgLargura)
{
novaImgAltura = (double) (--imgAltura);
novaImgLargura = (novaImgAltura * imgProporcao);
}
}
novaImagem = new BufferedImage(novaImgLargura.intValue(), novaImgAltura.intValue(), BufferedImage.TYPE_INT_RGB);
g2d = novaImagem.createGraphics();
g2d.drawImage(imagem, 0, 0, novaImgLargura.intValue(), novaImgAltura.intValue(), null);
ImageIO.write(novaImagem, "JPG", new File(caminhoImg));
return;
}//setImagemDimensao