Caso seja leigo neste assunto veja o post anterior, sobre MMAPI, que aprensenta alguns conceitos necessários para o entendimento do código que será mostrado.
Neste post mostraremos como capturar uma foto e mostrá-la em um form.Para a captura de uma imagem é requerido instâncias de um Player, um VideoControl e um
Display.
O VideoControl é utilizado para contolar o vídeo vindo da câmera e mostrá-lo em um
form.
Primeiramente vamos criar uma instância de Player e configurá-lo para ele perceber o
estado.
// “capture://image” é usado para indicar que queremos uma imagem.Agora inicializaremos uma instância de VideoControl e adicionaremos o vídeo em um form.
//Esta string é necessária para utilizar o método getSnapshot(), que será mostrado depois.
Player mPlayer = Manager.createPlayer("capture://image");
mPlayer.realize();
VideoControl mVideoControl=(VideoControl) mPlayer.getControl("VideoControl");O método getSnapshot(), do VideoControl, é utilizado para capturar as fotos. Este
Form form = new Form("Camera form");
Item item = (Item) mVideoControl.initDisplayMode(GUIControl.USE_GUI_PRIMITIVE, null);
form.append(item);
método retorna um array de bytes. Para mostrar esta imagem é necessário uma instância de Image. Depois configuramos os estados dos players para fechar e setar como null nossa instância de VideoControl.
//Obtendo a imagemAinda podemos pegar a foto que foi inserida no Form e salvá-la como uma imagem no cartão de memória do celular ou gravar no RMS, por exemplo, mas isso fica como desafio ao leitor ;)
byte[] raw = mVideoControl.getSnapshot(null);
Image image = Image.createImage(raw, 0, raw.length);
// Colocando o form principal.
if (this.size() > 0 && this.get(0) instanceof StringItem)
this.delete(0);
append(image);
// Volta ao form principal
mDisplay.setCurrent(this);
// desliga o player.
mPlayer.close();
mPlayer = null;
mVideoControl = null;
Para baixar o projeto completo clique aqui.
É importante dizer que este código não roda no emulador.
Testado em um Nokia 5220.
Referências:
http://efforts.embedded.ufcg.edu.br/javame/
http://developers.sun.com/mobility/apis/articles/mmapi_overview/
0 comentários:
Postar um comentário