Os artigos mais lidos

Quarta, Janeiro 30, 2013 Helio Loureiro Blog 19315
XGH é uma das coisas mais genias que surgiu nos últimos tempos, descrevendo a estupidez que se aplica em métodos ágeis, mas que reflete bem o ambiente corporativo. Infelizmente o site foi abandonado...
Sábado, Maio 03, 2008 Helio Loureiro FreeBSD 16581
This article is kindly linked by: http://tuxmobil.org/hp_compaq.html http://tuxmobil.org/mobile_bsd.html Barely finished my last article about FreeBSD (PRERELEASE at that time) on Compaq laptops,...
Quarta, Junho 11, 2014 Helio Loureiro Blog 16133
Nem só de discussões de licença, flamewares, releases de kernel e ativistas sapatênis vive o mundo do software livre. Às vezes é envolto de mistério também. Um dos enigmas recentes foi o sumiço da...
Sexta, Maio 20, 2005 Helio Loureiro Python 15689
Esse é o script usado para autenticar automaticamente no Speedy da Telefonica (região de São Paulo). Evita que usuários residenciais, como eu, precisem estar em frente à máquina, permitindo que a...

Dia desses eu redescobri as imagens da minha webcam.  Tirei vários screenshots usando o aplicativo cheese, desde que minha mais nova nasceu. E nem lembrava disso.

Consegui criar uma videozinho com elas, o que foi bem legal, mostrando o crescimento dela (e minha barba ficando cada vez mais branca).

 

A idéia inicial era gerar um gif animado, mas o mesmo ficou em 85 MB de tamanho.  E sem som.

Então resolvi fazer 2 coisas:

  • Um script pra ficar pegando imagens da webcam sem precisar de um aplicativo gráfico.
  • Gerar via linha de comando o gif animado.

A captura do screenshot, eu consegui fazer utilizando pygame.  O módulo já inclui vários binding pra realizar ações como capturar da webcam e salvar a imagem.  O script ficou assim:

#! /usr/bin/python -u

"""
Not only Obamas _is_ watching you...
Based in: http://stackoverflow.com/questions/15870619/python-webcam-http-streaming-and-image-capture
"""

SAVEDIR = "/home/helio/Pictures/Webcam"

import pygame, sys
import pygame.camera
import time, random

pygame.init()
pygame.camera.init()
cam = pygame.camera.Camera("/dev/video0", (640,480))

while True:
   print "Taking a shot:",
   cam.start()
   image = cam.get_image()
   cam.stop()
   
   timestamp = time.strftime("%Y-%m-%d_%H%M%S", time.localtime())
   filename = "%s/%s.jpg" % (SAVEDIR, timestamp)
   print "saving into %s" % filename
   
   pygame.image.save(image, filename)
   time.sleep(random.randrange(10) * 60)

Chamei de obamawatch.py em homenagem à espionagem da NSA nas nossas vidas, e que o presidente Obama não fez esforço nenhum pra diminuir ou mesmo evitar.  É um script super intrusivo, pois tira fotos de tempos em tempos, podendo pegar situações que... humm... não o faça se sentir muito orgulhoso.  Então é bom rodar de vez em quando.  

Pra juntar as imagens JPEG geradas em um GIF animado, usei o imagemagick com o mogrify.  Com o mogrify, na verdade, eu diminui as imagens pra 320x240 pixels, pra diminuir o tamanho.  Então usei o imagemagick pra gera o GIF.

mogrify -resize 320x240 *jpg

gm convert -delay 20 2013-09-07_1* animated-2013-09-07.gif

Com isso consegui o resultado abaixo.  Bem divertido.