Redimensior Imagem Java

Como posso pegar o tamanho de uma imagem em megabytes?

Se ela for maior que um determinado tamanho, preciso reduzir o tamanho dela em megabytes.

Preciso reduzir em tamanho de espaço(megabytes) e não em largura e altura.

Tem como fazer isso?

Há duas formas de se fazer isso:

  • Utilizar compressão sem perdas: Por exemplo, se a imagem estiver em formatos de baixa compressão como BMP, transforma-la para um formato de mais alta compressão como o PNG
  • Utilizar compressão com perdas: Como o JPG.

Vale analisar o tipo de imagens que você normalmente recebe. Alguns tipos de imagem tem compressão absurda em JPG, como fotos, sem que as perdas de qualidade sejam significativas. Entretanto, se forem imagens usadas para vigilância, usar compressão com perdas é uma má idéia, já que isso torna imagens escuras virtualmente impossíveis de serem tratadas.

O Java possui uma classe chamada ImageIO que faz todas essas conversões. Você também pode definir a qualidade do JPG, aumentando a compressão. Quanto mais compressão, mais a imagem original será distorcida. Veja esse link que explica como:

1 curtida