Imagem da Internet no Celular Em J2ME

Olá, Gostaria de inserir um imagem em j2me, eu consigo se a imagem estiver na local. Mas gostaria de inserir uma imagem que está na internet. se alguem puder me ajudar… Agradeço desde já.

Depende de como vai receber a imagem.

Se for de um aplicativo servidor, receba os bytes dela e depois crie a imagem com esses bytes.

Image.createImage(bytes[], offset, length)

  • você pode achar facil na documentação…

Interessante este modo, mas gostaria de exibir a imagem que esteja em um site por exemplo
no picasa, tipo pegaria sua url e seria mostrado no aparelho…
Se puder me ajudar agradeço…

Não sei se esse picasa ou qualquer outro site que vai usar tem um endereco amigavel que só responde a imagem, sem html. se a resposta é sim, você vai ter que abrir uma conexão com essa url da imagem, pegar os bytes dela e jogar nesse Image. Agora se a resposta for não, você vai ter que pegar todo o html processar, separar a imagem real (url verdadeira) e ai criar a imagem. Porque não tem como ignorar o resto da pagina do site.

Eu faria com um servidor que processa tudo e envia só a imagem processada para o celular, creio ser melhor porque tira toda a responsabilidade e processamento do celular que é bem mais limitado, alem de permitir muito mais coisas legais para fazer.

Como sempre, dica melhor dada impossível. Se o cara depois desta não resolver, pelamor…

Grande mestre… boone, quanto tempo!

Agradeço o elogio.
Bom vamos ver ai qual é a dele agora, espero que ele faça do melhor jeito possivel… ou compre a solução de mim.

Abraços,
Ricoldi.

muito obrigado pelas dicas! mas consegui uma solução bem interessante para quem tiver a mesma duvida que eu tinha vai ai o código

package ctrl; import javax.microedition.io.*; import java.io.*; import javax.microedition.lcdui.Image; public class ctrl_conimagem { /*-------------------------------------------------- * Abre uma conexão http e baixa um arquivo png * em um array de bytes *-------------------------------------------------*/ public Image getImage(String url) throws IOException { //usamos aqui ao invés de httpconnection a conexao padrao, o qual nao nos garante nada. //embora a conexao http tambem nao seja muito confiavel. ContentConnection connection = (ContentConnection) Connector.open(url);//aqui na url pode ser apenas o endereço da imagem do picasa ou qualquer outro endereço DataInputStream iStrm = connection.openDataInputStream(); Image im = null; try { byte imageData[]; int length = (int) connection.getLength(); if (length != -1) { imageData = new byte[length]; // Le um png em um array iStrm.readFully(imageData); } else //se o tamanho não está disponível { ByteArrayOutputStream bStrm = new ByteArrayOutputStream(); int ch; while ((ch = iStrm.read()) != -1) bStrm.write(ch); imageData = bStrm.toByteArray(); bStrm.close(); } //Cria a imagem de um array de bytes im = Image.createImage(imageData, 0, imageData.length); } finally { // Clean up if (iStrm != null) iStrm.close(); if (connection != null) connection.close(); } return (im == null ? null : im); } }

O que vc fez não foi nada além do que o ricoldi já havia indicado.

Até que para uma 1a versão a rotina funciona, mas se for usar de forma séria, faça o favor a você mesmo de:

  • colocar nome de classe em maiuscula

  • nao usar finally e fazer um outro try para cada objeto que for fechar.

  • Nao fazer um return porco assim. O teu return equivale a fazer o mesmo que:

return im;

Pq ? Pq se o im for nulo, retorna nulo, se não for, retorna o próprio objeto ! Ou seja, teu código tá fedidin…

E por aí vai…

[quote=boone]O que vc fez não foi nada além do que o ricoldi já havia indicado.

Até que para uma 1a versão a rotina funciona, mas se for usar de forma séria, faça o favor a você mesmo de:

  • colocar nome de classe em maiuscula

  • nao usar finally e fazer um outro try para cada objeto que for fechar.

  • Nao fazer um return porco assim. O teu return equivale a fazer o mesmo que:

return im;

Pq ? Pq se o im for nulo, retorna nulo, se não for, retorna o próprio objeto ! Ou seja, teu código tá fedidin…

E por aí vai…[/quote]

É manoloHÁ , você pegou entendeu bem a ideia da coisa, não sei a quanto tempo mexe com isso, o que o Boone disse tem toda a razão (Mas Boone, a de convir que aqui mesmo no forum já vimos códigos porcos de verdade) ele é muito exigente (rs…), mas sempre procure melhorar seu código depois que ele passa a funcionar vocẽ ganha em experiencia e até desempenho.

De qualquer forma, parabéns e boa sorte.
Att,
Ricoldi.

Olá ricoldi fiz esta primeira versão baseado nas suas dicas que foram ótimas, mas vou melhora-lo.

…as dicas no boone também são aceitáveis apesar de ser ARROGANTE!
de qualquer forma muito obrigado estamos aqui trocar conhecimentos

Vlw ricoldi!