Miniatura de imagem p/ preview

Boa tarde pessoal :slight_smile:
Estou aqui de noooooo :open_mouth: hehe
Estou AINDA mexendo no programa de processamento de imagens do ano passado. Na verdade eu terminei o programa p/ entregar ao professor, mas ele estava um lixo e agora estou arrumando-o p/ que ele fique decente e à altura p/ ser postado aqui… Estou mexendo na interface e puverizando os bugs :slight_smile:

Indo ao assunto…

Meu Problema:
O programa de processamento recebe imagens e faz processamento na matriz de pixels… Obtive ajuda aqui e em relação a isso está tudo bem. Agora estou acertando a interface.
O que acontece é que seria mais cômodo para o usuário se ele tivesse uma pré-visualização da imagem deopis do processamento, pra ele ter certeza de que ele quer mesmo processar a imagem. As principais razões são que o processamento de imagens grandes é demorado e , se ele não gostar do resultado, não dá pra voltar atrás.
P/ isso, uma idéia que tive é criar uma miniatura da imagem e aplicar o processamento primeiramente na miniatura. A miniatura processada seria apresentada para que o usuário visse como ficará a imagem. Processar a miniatura é super + rápido e evita que o usuário perca a imagem original caso não goste do resultado do processamento.

Então… Alguém pode me ajudar a construir uma miniatura de imagem? Ou dizer as classes que preciso estudar?
Agradeço muito :slight_smile: :slight_smile:

Oi.

Você pode fazer isso através do objeto Graphics do BufferedImage e do método drawImage.

Dá uma olhada no tópico:
http://www.guj.com.br/posts/list/73616.java#389022

Ele mostra um exemplo de como aplicar um zoom qualquer a uma imagem.

Acredito que o seu problema não seja na redução da imagem para a apresentação, mas sim antes do processamento… para isso vc precisa escalonar a imagem para produzir uma entrada com uma “matriz de pixels” (como usou) menor…

Eu recomendo o JAI (https://jai.dev.java.net/) ele implementa diversos algoritmos para manipulação de imagens em diferentes formatos…

Assim que obtiver uma entrada “menor” vc pode aplicar os filtros que o usuário selecionou, reduzindo drasticamente o tempo de processamento.

Pode começar olhando a classe Interpolation (http://download.java.net/media/jai/javadoc/1.1.3/jai-apidocs/javax/media/jai/Interpolation.html) que abstrai os diferentes tipos de interpolação.

Valeu! :slight_smile:
Quem ajudou ou puder ir ajudando, agradeço :slight_smile: Era pra ter terminado isso há mt tempo, mas meu pc estragou nas férias :slight_smile: agora estou correndooooo 8)
Enquanto ao processamento, eh normal que demore :slight_smile: Por isso que seria bom mostrar uma prévia ao usuário, utilizando a miniatura da imagem, senao ele espera um tempão p/ mudar a imagem original e corre o risco de não gostar… Pra não ficar monotomo, eu estou usando uma progressbar pra mostrar o andamento do processamento :slight_smile: Obrigada pela sugestão :DDDD
Vou olhar o que mandaram e agradeço novas idéias :slight_smile:
Até mais galeraaaaaaaaaa 8DDDDD vamos ver no que dá :smiley: haha