Pergunta

Eu estou tentando fazer uma captura de imagem em um high-end telefone Nokia (N95). câmera interna do telefone é muito bom (4 megapixels), mas em J2ME Eu só parecem ser capazes de obter um máximo de imagem 1360x1020 fora. Eu desenhei em grande parte a partir deste exemplo http://developers.sun.com/mobility/midp / artigos / imagem /

O que fiz foi começar com 640x480 e aumentar a largura e altura de 80 e 60, respectivamente, até que ele falhou. A linha de código é:

= JPG mVideoControl.getSnapshot ( "encoding = jpeg & qualidade = 100 & largura =" + largura + "& altura =" + altura);

Assim, as duas questões são: 1. O telefone lança uma exceção ao obter uma imagem maior do que 1360x1020. 2. As imagens de alta resolução parecem ser apenas suavizada versões dos menores. Por exemplo. Quando eu tomar uma imagem de 640x480 e aumentá-la no photoshop eu não posso dizer a diferença entre este e aquele que supostamente 1360x1020.

Esta é uma limitação de J2ME no telefone? Se assim for, alguém sabe de uma maneira de obter uma resolução maior de dentro de um aplicativo J2ME e / ou a forma de acessar a câmera nativo de dentro de outro aplicativo?

Foi útil?

Solução

Este explicação no Nokia fórum pode ajudá-lo.

Ele diz que "O tamanho de imagem máximo que pode ser capturado depende do formato da imagem selecionada, opções e memória heap livre disponíveis codificação."

e

"é assim aconselhado É fortemente que pelo menos as imagens grandes (maiores que 1mpix) são capturados como imagens JPEG e num tamanho de imagem comum (por exemplo 1600x1200 para 2Mpix um assim por diante). Tamanhos de imagem comuns suportados são dependentes de produto e plataforma versão. "

Por isso, sugiro que você tome algumas tentativas 1. com 1600x1200, 1024x768 e qualquer resolução de imagem o seu guia N95 menciona 2. com BMP e PNG também.

De qualquer forma, com base em minhas experiências anteriores (que poderia ser ultrapassada), implementações J2ME estão cheios de erros, de modo que não pode ser uma solução de trabalho para o seu problema.

Outras dicas

A resolução da câmera é nativamente: 2582 x 1944. Tente capturar lá para ver como isso vai.

Este lugar: http://developers.sun.com/mobility/midp/articles/ foto / index.html

menciona o uso de:

byte[] raw = mVideoControl.getSnapshot(null);
Image image = Image.createImage(raw, 0, raw.length);

O uso de matéria parece interessante, para obter a resolução nativa.

A 'qualidade' de um JPEG (Como interpretado pelo código) não é nada a ver com a resolução. Pelo contrário, é a ver com o comprimido é a imagem. Uma imagem de 640x480 a 100 qualidade será noticably melhor do que olhar uma imagem de 640x480 a 50, mas vai usar mais espaço de armazenamento.

Tente isto em vez disso:

jpg = mVideoControl.getSnapshot("encoding=jpeg&quality=100&width=2048&height=1536");
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top