Tirar foto utilizando Webcam e PHP

Fonte: Aqui

Author: Vivek Moyal
Tradução e Ajustes: PHPBlog
Download dos Arquivos: Aqui

*Não colocarei o exemplo funcionando aqui pois não tenho como prever o conteúdo das fotos tiradas. ehehehehehehe

Para este tutorial, utilizaremos o webcam.js desenvolvido pelo Joseph Huckaby.
Disponível em: https://code.google.com/p/jpegcam/

Vamos as explicações.

No arquivo index.php encontramos:

<!DOCTYPE html>
<html>
<head>
<title>PHP Blog - Exemplo de utilização de Webcam com PHP</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width">
<script type="text/javascript" src="webcam.js"></script>
<script type="text/javascript">
//Configurando o arquivo que vai receber a imagem
webcam.set_api_url('upload.php');

//Setando a qualidade da imagem (1 - 100)
webcam.set_quality(90);

//Habilitando o som de click
webcam.set_shutter_sound(true);

//Definindo a função que será chamada após o termino do processo
webcam.set_hook('onComplete', 'my_completion_handler');

//Função para tirar snapshot
function take_snapshot() {
document.getElementById('upload_results').innerHTML = '<h1>Uploading...</h1>';
webcam.snap();
}

//Função callback que será chamada após o final do processo
function my_completion_handler(msg) {
if (msg.match(/(http\:\/\/\S+)/)) {
var htmlResult = '<h1>Upload Successful!</h1>';
htmlResult += '<img src="'+msg+'" />';
document.getElementById('upload_results').innerHTML = htmlResult;
webcam.reset();
}
else {
alert("PHP Erro: " + msg);
}
}
</script>
</head>
<body>
<script type="text/javascript">
//Instanciando a webcam. O tamanho pode ser alterado
document.write(webcam.get_html(320, 240));
</script>
<form>
<input type=button value="Configurar" onClick="webcam.configure()">
&nbsp;&nbsp;
<input type=button value="Tirar Foto" onClick="take_snapshot()">
&nbsp;&nbsp;
<input type=button value="Reset" onClick="webcam.reset()">
</form>
<div id="upload_results"></div>
</body>
</html>

É basicamente composto por HTML e Javascript no qual vai instanciar a Webcam e habilitar algumas funcionalidades.

O PHP está no arquivo: upload.php

<?php
    session_start();

    $uploadDir = 'uploads';

    if(!is_dir($uploadDir)){
        if (!mkdir($structure, 0777, true)) {
            print "ERRO: Não foi possível criar o diretório [uploads]";
        }
    }

    if(!is_writable($uploadDir)){
        chmod($uploadDir, 0777);
    }

    $name = $uploadDir.'/image_'.date('YmdHis').'.jpg';
    $file = file_put_contents($name, file_get_contents('php://input'));
    if (!$file) {
        print "ERRO: Falha de escrita para o arquivo [$name], É necessário dar permissão de escrita na pasta [$uploadDir]\n";
        exit();
    }

    print 'http://'.$_SERVER['HTTP_HOST'].dirname($_SERVER['REQUEST_URI']).'/'.$name;
?>

Este é o responsável por fazer o upload da imagem gerada e salvar na pasta definida na variável “$uploadDir”.

Vale lembrar que é preciso definir a permissão de escrita para a pasta definida. No caso do exemplo “uploads”.

Até (:

Share Button