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.
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???
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.
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.
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.
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.