Memoria Heap estorou com apenas 2 imagens o que pode ser?

Pessoal, boa tarde!

Será que alguem poderia me ajudar, estou desenvolvendo uma aplicação para manipulação de imagens, estou na fase de testes, e nos meus testes quando eu carrego imagens JPG esta tudo tranquilo…posso garregar 20 imagens tranquilamente…mas quando eu carrego PNG apenas 2 imagens já estoura a memoria heap…e as imagens são pequenas em tamanho cada uma tem 50kb.

O que pode ser???

segue abaixo meu codigo para carregamento.

this.imagem = ImageIO.read(url);

Estranho, isso parece um problema que eu tive com o JFreeChart tempos atrás…como estão seus parâmetros de uso da heap na sua VM?Vc usa BufferedImage ou RenderedImage???

Olá Ironlynx obrigado por me ajudar.

Os parametros da minha heap está como default não cheguei a aumentar a memoria…mas ela estoura quando chega em 100mb…mas até ai já tem espaço pra caramba né?

O que eu percebi quando eu carrego um PNG a memoria sobe no minimo 20MB com uma imagem de 50kb.

Estou usando BufferedImage.

Os PNG’s tem 1500x1500 mas como são imagens simples ( um fundo azul e algumas transparências ) no disco rígido ela tem 50kb.

Tá embaçado cara nao sei mais o que eu faço.

agradeço desde já…

Espaço pra caramba nada!Se eu não me engano, o default é bem baixo, algo como 64… dá um -Xmx256m da vida no seu heap pq vc terá problemas.E infelizmente, a qualidade da imagem não fará tanta diferença…1500x1500 é pixel pacas, com cada um ocupando(se não me engano) 4 bytes.Talvez vc tenha que fazer tipo um cache(faz tempo que não mexo nisso), e usando RenderedImage deve melhorar a coisa.

Levando em conta tbm as transparências, etc…
Não é pq o arquivo é pequeno (50k) que o processamento dele será…
E como o Ironlynx falou, 1500x1500 é muita coisa mesmo.

Até mais!

Valeu mesmo pessoal

Achei que eu estava fazendo alguma coisa errada… é como o david falou…não é pq a imagem no disco tem 50k que o processamento dela vai ter esse tamanho…hauhauhauhau

Vou dar uma estuda entao no RendererImage e ler algumas coisa sobre cache.

é pq a imagem eu preciso trazer no tamanho original…pois o usuário manipula a imagem…ele diminui, aumenta, gira…e eu preciso da imagem com a qualidade maxima.

hehehe! =)

O tamanho dela físico é uma coisa, aberto é outra… =)

Armazenado é como se fosse só um arquivo zip… hehehe

Tenta manipular uma imagem em uma resolução menor, ai, depois que o usuário tiver rotacionado, redimensionado e etc, vc aplica no arquivo original.

Por favor, não ressuscite tópicos como se a dúvida fosse postada ontem. O último post antes do seu era de 6 anos atrás.

Além disso, certifique-se que sua resposta é realmente a solução de um tópico antigo, caso ele não seja resolvido. Se você usar uma resolução menor numa imagem, irá perder qualidade ao redimensiona-la para um tamanho maior. Portanto, do ponto de vista de processamento de imagens, o que você sugeriu não sequer é aplicável.