TheJoe.it Into the (open) source

24ago/103

“Stampare” ora e data automaticamente in una foto

webcam

Oggi ci occupiamo di inserire data ed ora correnti in un'immagine usando il terminale. Di per sé la procedura non è complicata, vediamo come fare.

Intanto vediamo come farci dire la data e l'ora dal pc:

[user@localhost ~]$ echo $(date -R)
Tue, 24 Aug 2010 11:45:04 +0200

E ora vediamo come inserirlo nell'immagine che ci interessa usando ImageMagick. Questo programma ci permette di eseguire innumerevoli manipolazioni sull'immagine, senza dover passare per l'interfaccia grafica. È disponibile anche una primitiva interfaccia grafica, ma ImageMagick è principalmente utilizzato per alcuni automatismi (che fra poco vedremo) a riga di comando, o richiamato da PHP.

Per saperne di più...

Tratto da imagemagick.org.
Usa il programma convert per convertire i formati, ridimensionare un'immagine, sfocaretagliare, smacchiare, disegnare, specchiare, unire, campionare e molto altro. Nella sezione Command Line Processing troverai come impostare la sintassi del comando convert.

Il programma "convert" è anche molto semplice da comprendere. In questo caso vogliamo "stampare" data ed ora sulla foto. Il codice da inserire è questo:

[user@localhost ~]$ convert -pointsize 12 -fill white -undercolor black -gravity northwest -draw "text 0,0 'Data: $(date -R)' " /full/path/original.jpg /full/path/output.jpg

Spiego le variabili di seguito:

Variabile Spiegazione
-pointsize La dimensione del font
-fill Il colore del font
-undercolor Il colore del background
-gravity La posizione del testo
-draw "some text here" Il testo

Ovviamente poi andranno indicati il file sorgente ed il file destinazione.

L'originale

Dopo il processo

Stampare data ed ora sulla foto risulta utilissimo nel caso in cui dovessimo installare una webcam meteo. L'argomento è già stato sviscerato qualche articolo fa, perché vengano sovraimpresse data ed ora alla foto è sufficiente modificare il file "/etc/crontab" come segue:

* *   * * *   joe     streamer -o /home/user/Immagini/webcam/w_image.jpeg
* *   * * *   joe     convert -pointsize 12 -fill white -undercolor black -gravity northwest -draw "text 0,0 'Data: $(date -R)' " /full/path/w_image.jpg /full/path/r_image.jpg
* *   * * *   joe     cp /home/user/Immagini/webcam/r_image.jpeg /mnt/miosito.it/webcam/

Ed ecco il risultato finale.

About

Mantengo questo blog a livello amatoriale dal 2009. Sono appassionato di grafica, tecnologia, software Open Source. Fra i miei articoli non sarà difficile trovarne circa la musica, ed alcuni di riflessioni personali, ma preferisco indirizzare la linea del blog principalmente verso la tecnologia. Per informazioni contattami.

Commenti (3) Trackback (0)
  1. ok, capisco cmq io uso una webcam abbastanza buona che mi permette di avere immagini discrete anche piu’ grandi quindi ho risolto cosi
    streamer -s 640×480 -o /home/user/prova.jpeg

    grazie ancora per la tua disponibilita’

  2. Ciao Michele, e grazie per il tuo commento.

    Ti segnalo subito che per la cattura del frame, streamer si basa sui dati della webcam. In questo caso uso la webcam del netbook, oltremodo piccola, ma se usi una webcam con qualche megapixel in più riesci a catturare le foto a risoluzioni più alte. Dipende tutto dalla qualità della webcam.

    La dicitura “+0200″ alla fine della stringa non è altro che l’indicazione della fascia oraria. Greenwich è a 0000, noi dovremmo essere a +0100, ma in realtà con l’ora legale finiamo a +0200. Due ore in più rispetto all’ora di Greenwich.

  3. ottime info proprio quelle che cercavo, ti ringrazio infinitamente per il tuo aiuto poi volevo chiederti se con streamer e’ possibile “catturare” un frame di dimensioni maggiori tipo 640×480 ed infine vorrei chiederti che cosa significa quel +0200 dopo l’orario stampato


Leave a comment

Ancora nessun trackback.