olá senhores.
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.
alguém contribui??
grato.
e ai descobriu alguma coisa?
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.
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.
fabio_ajm, Poste seu código, como você fez para chamar a web cam?
Para salvar a imagem, você armazena e converte em bytes e salva como blob no banco, veja este tópico:
http://javafree.uol.com.br/topic-880026-Pegar-imagem-de-um-label-e-converter-e-bytes.html
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!
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">
<html xmlns="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>
<script type="text/javascript"
src="#{facesContext.externalContext.requestContextPath}/js/jquery.min.js"></script>
<script type="text/javascript"
src="#{facesContext.externalContext.requestContextPath}/js/jquery.webcam.js"></script>
<script type="text/javascript" language="JavaScript">
$(function() {
$('#webcam').createWebCam();
$('#capture').click(function() {
$('#webcam').getWebCam().capture(function(json){
if(json.type=="success") {
console.log('URL: '+json.msg);
} else if(json.type == "error") {
console.log('ERROR: '+json.msg);
}
});
});
$('#reset').click(function() {
$('#webcam').getWebCam().reset();
});
$('#configure').click(function() {
$('#webcam').getWebCam().configure();
});
});
</script>
</head>
<body>
<div id="webcam"></div>
<a id="capture">Snapshot</a>
<a id="reset">Reset</a>
<a id="configure">Configure</a>
</body>
</html>
A servlet:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.Reader;
import java.io.Writer;
import javax.servlet.ServletException;
import javax.servlet.ServletInputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class Teste
*/
public class Teste extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public Teste() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doPost(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
InputStream stream = request.getInputStream();
InputStreamReader reader= new InputStreamReader(stream);
Reader in = new BufferedReader(reader);
StringBuffer buffer = new StringBuffer();
int ch;
while ((ch = in.read()) > -1) {
buffer.append((char)ch);
}
in.close();
//agora precisa transformar o stream em imagem
}
}
}