estou implementando um cadastro de clientes onde é necessário inserir uma foto do mesmo.
para quebrar um galho estou utilizando o file upload do primefaces, mas dessa maneira o usuario precisa acessar o programa da webcam, tirar uma foto, salvar, ir para o sistema e fazer o upload da foto, tornando-se um processo cansativo e deixando-o com uma usabilidade não muito boa. gostaria de fazer com que o usuario pudesse tirar essa foto através do nosso sistema, direto da página web.
sei que existe um plugin (jquery-webcam), mas não sei como integrar ele com o JSF.
Uma pagina web funciona com base em HTML, JS e CSS. E dentro deles não é permitido manipular nada na maquina do usuário final.
Todos as soluções web (HTIN-CLIENT) que precisa fazer alguma coisa de FAT-CLIENT mandam uma pequena applet java que é um programa desktop devidamente assinado que pode então ser executada embutidamente dentro da pagina e ter acesso os recursos da maquina do usuário. Muitos sistema usam isso para acessar impressoras, dispositivos biométricos, impressoras de cheques etc. Eu acredito que o caso do seu cenário.
F
fabio_ajm
Então estou tentando fazer com flash e jquery, acho que ficara melhor e mais moderno. Fiz a camera funcionar mas ainda não consegui gravar a imagem via java achei alguns codigos que fazem isso de maneira facil com php, mas ainda não consegui converter em java se alguem puder ajudar agradeço.
I
illa_Silva_Barros
fabio_ajm, Poste seu código, como você fez para chamar a web cam?
Estou tentando implementar essa função em uma solução de cadastro que estou fazendo, se for possível mostrar como chamou a wabcam…
Valeu!
F
fabio_ajm
estou postando os fontes, se obter qualquer progresso posta ai.
o fonte .xhtml
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"xmlns:h="http://java.sun.com/jsf/html"xmlns:f="http://java.sun.com/jsf/core"xmlns:ui="http://java.sun.com/jsf/facelets"><head><scripttype="text/javascript"src="#{facesContext.externalContext.requestContextPath}/js/jquery.min.js"></script><scripttype="text/javascript"src="#{facesContext.externalContext.requestContextPath}/js/jquery.webcam.js"></script><scripttype="text/javascript"language="JavaScript">$(function(){$('#webcam').createWebCam();$('#capture').click(function(){$('#webcam').getWebCam().capture(function(json){if(json.type=="success"){console.log('URL: '+json.msg);}elseif(json.type=="error"){console.log('ERROR: '+json.msg);}});});$('#reset').click(function(){$('#webcam').getWebCam().reset();});$('#configure').click(function(){$('#webcam').getWebCam().configure();});});</script></head><body><divid="webcam"></div><aid="capture">Snapshot</a><aid="reset">Reset</a><aid="configure">Configure</a></body></html>
A servlet:
importjava.io.BufferedReader;importjava.io.File;importjava.io.FileOutputStream;importjava.io.FileWriter;importjava.io.IOException;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.io.OutputStream;importjava.io.Reader;importjava.io.Writer;importjavax.servlet.ServletException;importjavax.servlet.ServletInputStream;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;/** * Servlet implementation class Teste */publicclassTesteextendsHttpServlet{privatestaticfinallongserialVersionUID=1L;/** * @see HttpServlet#HttpServlet() */publicTeste(){super();// TODO Auto-generated constructor stub}/** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{// TODO Auto-generated method stubdoPost(request,response);}/** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{// TODO Auto-generated method stubInputStreamstream=request.getInputStream();InputStreamReaderreader=newInputStreamReader(stream);Readerin=newBufferedReader(reader);StringBufferbuffer=newStringBuffer();intch;while((ch=in.read())>-1){buffer.append((char)ch);}in.close();//agora precisa transformar o stream em imagem }}}