{"id":2047,"date":"2010-02-17T12:44:00","date_gmt":"2010-02-17T12:44:00","guid":{"rendered":"http:\/\/svay.com\/blog\/?p=2047"},"modified":"2010-02-17T12:44:00","modified_gmt":"2010-02-17T12:44:00","slug":"prendre-regulierement-une-photo-avec-son-mac-et-l-uploader","status":"publish","type":"post","link":"https:\/\/svay.com\/blog\/prendre-regulierement-une-photo-avec-son-mac-et-l-uploader\/","title":{"rendered":"Prendre r\u00e9guli\u00e8rement une photo avec son Mac et l&#8217;uploader"},"content":{"rendered":"<p>Et si on prenait des photos \u00e0 intervalles r\u00e9guliers et qu&#8217;on les mettait en ligne? Pourquoi faire? Pour faire de la vid\u00e9o surveillance, monter un film stop-motion ou retrouver qui a vol\u00e9 votre Mac par exemple. Si vous avez un Mac \u00e9quip\u00e9 d&#8217;une webcam, c&#8217;est facile.<\/p>\n<h3>Prendre des photos en ligne de commande<\/h3>\n<p>Tout d&#8217;abord, t\u00e9l\u00e9chargez <a href=\"http:\/\/iharder.sourceforge.net\/current\/macosx\/imagesnap\/\" hreflang=\"en\">ImageSnap<\/a> et mettez-le dans <code>\/usr\/local\/bin<\/code> par exemple. N&#8217;importe quel dossier dans votre <code>PATH<\/code> fera \u00e9galement l&#8217;affaire.<\/p>\n<h3>Uploader l&#8217;image vers un serveur<\/h3>\n<p>Ensuite, cr\u00e9ez un fichier <code>snap.sh<\/code> avec le code suivant:<\/p>\n<pre> #!\/bin\/sh upload=&quot;http:\/\/example.com\/upload.php&quot; imagesnap snapshot.jpg curl -F &quot;photo=@snapshot.jpg&quot; $upload <\/pre>\n<p>Vous pouvez mettre de dossier o\u00f9 vous voulez, dans votre dossier personnel par exemple. Ce script permet de prendre une photo, et de l&#8217;uploader vers http:\/\/example.com\/upload.php en POST avec CURL.<\/p>\n<h3>R\u00e9cuperer l&#8217;image upload\u00e9e et la stocker<\/h3>\n<p>Maintenant, mettez sur votre serveur le script PHP <code>upload.php<\/code> suivant. Il permet de r\u00e9cup\u00e9rer l&#8217;upload et de stocker l&#8217;image sur le serveur. Cr\u00e9ez \u00e9galement un dossier img \u00e0 c\u00f4t\u00e9 de votre script. C&#8217;est dans ce dossier que seront mises les photos.<\/p>\n<pre> &lt;?php $path = dirname(__FILE__).'\/img'; $year_folder = $path . '\/' . date('Y'); if (!is_dir($year_folder)) {     mkdir($year_folder); } $month_folder = $year_folder . '\/' . date('m'); if (!is_dir($month_folder)) {     mkdir($month_folder); } $day_folder = $month_folder . '\/' . date('d'); if (!is_dir($day_folder)) {     mkdir($day_folder); } $file_path = $day_folder . '\/' . date('Ymd-His') . '_' . $_SERVER['REMOTE_ADDR'] . '.jpg'; if (move_uploaded_file($_FILES['photo']['tmp_name'], $file_path)) {     echo &quot;OK\\n&quot;; } else {     echo &quot;Error\\n&quot;; } <\/pre>\n<p>Notez que les photos seront stock\u00e9es dans des dossiers comme dans cet exemple: img\/2010\/02\/17\/20100210-120000_127.0.0.1.jpg. Le fichier comporte donc la date, l&#8217;heure et l&#8217;IP d&#8217;o\u00f9 la photo est envoy\u00e9e.<\/p>\n<h3>Automatiser la t\u00e2che<\/h3>\n<p>Une fois que tout est en place, il suffit d&#8217;ex\u00e9cuter <code>snap.sh<\/code> pour prendre la photo et l&#8217;uploader. Pour automatiser \u00e7a, on peut ajouter cette action dans cron. Pour cela, faites :<\/p>\n<pre> crontab -e <\/pre>\n<p>et ajoutez la ligne suivante (\u00e0 adapter selon l&#8217;emplacement de snap.sh):<\/p>\n<pre> 0 * * * * \/Users\/mauricesvay\/snap.sh <\/pre>\n<p>Voil\u00e0. Votre mac prendra des photos toutes les heures pour les mettre sur votre serveur. Facile.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Et si on prenait des photos \u00e0 intervalles r\u00e9guliers et qu&#8217;on les mettait en ligne? Pourquoi faire? Pour faire de la vid\u00e9o surveillance, monter un film stop-motion ou retrouver qui a vol\u00e9 votre Mac par exemple. Si vous avez un Mac \u00e9quip\u00e9 d&#8217;une webcam, c&#8217;est facile. Prendre des photos en ligne de commande Tout d&#8217;abord, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[26],"tags":[16,17,18,19],"_links":{"self":[{"href":"https:\/\/svay.com\/blog\/wp-json\/wp\/v2\/posts\/2047"}],"collection":[{"href":"https:\/\/svay.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/svay.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/svay.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/svay.com\/blog\/wp-json\/wp\/v2\/comments?post=2047"}],"version-history":[{"count":0,"href":"https:\/\/svay.com\/blog\/wp-json\/wp\/v2\/posts\/2047\/revisions"}],"wp:attachment":[{"href":"https:\/\/svay.com\/blog\/wp-json\/wp\/v2\/media?parent=2047"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/svay.com\/blog\/wp-json\/wp\/v2\/categories?post=2047"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/svay.com\/blog\/wp-json\/wp\/v2\/tags?post=2047"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}