Oi pessoal
Para economizar espaco, quero colocar todas as imagens num mesmo png.
Como posso fazer para recortar esse png na memoria depois? Tipo, fazer Graphics.drawImage mas soh de uma parte da imagem, sem ser clipping.
Oi pessoal
Para economizar espaco, quero colocar todas as imagens num mesmo png.
Como posso fazer para recortar esse png na memoria depois? Tipo, fazer Graphics.drawImage mas soh de uma parte da imagem, sem ser clipping.
Se você for ter cada pedaço em um Graphics que seja exatamente do tamanho do pedaço que você quer, acho que é só setar o x,y de acordo, da mesma forma que faria com o clip (mas ao invés do clip usando um Graphics de uma Image mutável do tamanho que seria o clip).
Tipo, se o pedaço da imagem que você quer começa no ponto 10,10, você passa -10,-10 como parâmetro.
Mas antes de você tentar recortar as imagens eu sugiro que você teste se o celular suporta imagens muito grandes. Muitos deles tem uma certa limitação no tamanho e coisas muito estranhas acontecem quando passa desse limite.
Para economizar espaco, quero colocar todas as imagens num mesmo png.
TODAS as imagens? Não creio ser uma boa idéia… você vai economizar espaço, mas vai ser uma bagunça…
Hum… Porque não clipping? Se fosse MIDP 2.0 era fácil fazer o que você quer, mas com MIDP 1.0 o clipping é provavelmente a melhor saída.
E o final da imagem como fica?
E o final da imagem como fica?
Não entendi a dúvida… mas vou explicar melhor a idéia:
Suponha que você tenha um imagem de 90x90 pixels que você quer dividir em 9 imagens de 30x30 pixels.
Agora vamos supor que a imagem que você qeur recortar é a do centro, que começa nas coordenadas 30x30 e termina em 60x60.
Você cria uma imagem mutável de 30x30, por ser o tamanho do pedaço que você quer, e cria um objeto Graphics a partir dela.
Aí você manda desenhar a imagenzona de 90x90 com um offset de -30,-30 a partir do canto superior esquerdo. Como esse deslocamento o canto superior esquerdo do seu graphics vai bater justamente com a coordenada 30x30 que você queria da imagem grande. E como não tem clip nenhum ele vai preencher todo seu Graphics, pegando os 30 de largura e 30 de altura que você queria.
Eu é que não tinha entendido a idéia direito :oops:
Ela parece interessante, exceto pelo fato de potencialmente jogar o consumo de memória na núvens…
Eu é que não tinha entendido a idéia direito :oops:
Ela parece interessante, exceto pelo fato de potencialmente jogar o consumo de memória na núvens…
Bom, o grande problema na idéia do Paulo é querer ter uma imagem original que contenha todas as imagens. Se todas as imagens forem ficar na memória ao mesmo tempo, na forma completa e/ou separada nos pedaços, pode ser um desastre mesmo.
Mas ter por exemplo todos os quadros de animação de um sprite em uma única imagem e ir dando setclip pra desenhar na tela a parte necessária dessa forma é uma prática bem comum, e no caso do Paulo que não quer usar setClip não acho que dê tanta diferença assim manter os pedaços de imagem ao invés da imagem original.
Valeu Vanessa, agora saquei o que eh aquele getGraphics da Image 
Paulo, nao vai dar muito consumo de memoria nao, vai usar soh o tamanho de duas vezes a imagem maior, isso se eu ficar segurando referencia para essa Image.
Esse método é especialmente útil para fazer doublebuffer de fundo ou outras coisas que mudam pouco! Pode ajudar muito na performance.
Só duas vezes? Putz, dependendo do tamanho da imagem isso é coisa pra caramba… E tem mais um problema: Segundo o Marcelo Oliveira, do INdT, o GC simplesmente não funciona em alguns aparelhos. Ou seja, colocou na memória, já era.
Só duas vezes? Putz, dependendo do tamanho da imagem isso é coisa pra caramba… E tem mais um problema: Segundo o Marcelo Oliveira, do INdT, o GC simplesmente não funciona em alguns aparelhos. Ou seja, colocou na memória, já era.
Entao, gasta duas vezes momentaneamente, depois libera.
Mesmo se o GC nao funcionar, eh mmelhor gastar 2x a memoria com as iamgens juntas do que 1x com separado, porque a compressao do png ganha muito quando as imagens sao aprecidas/rotacoes.
Proque você não usa a MIDP 2.0, e usa a classe Sprite que te permite fazer isso de uma forma bem mais simples? qualquer coisa posso te ajudar com Sprites
fazendo com midp2 ja corta 90% do mercado…
Fazer o quê…o pessoal acha que tá nos EUA ou UE… :?
Gente, vamos acordar…aqui é Brasil ! MIDP 1.0 Rulez !
Esse papo de usar MIDP 2.0 é igual a usar Symbian:
Todo mundo sabe que é bom, mas se vc pergunta quem já desenvolveu para ou já viu, xiii aí demora !!! 
Além de pouco difundido, a questão de preços dos aparelhos com suporte e da falta de opções de vários fabricantes, faz com que não seja nada interessante no momento usar o MIDP 2.0.
Questão de preços? 90%?
Sejamos mais realistas, se você for em uma loja de celular em qualquer cidade do Brasil acho que você não encontra nenhum que rode MIDP 2.
A Nokia já está anunciando no site os dela, a Ericsson também, mas ainda estão longe de chegarem a um acordo com as operadoras e colocarem a venda os aparelhos.
Pois é Bani. Falar em MIDP 2.0 a nível de Brasil é como contar uma piada.
Vamu ficar no MIDP 1.0 que tá bom demais… :lol: