“Stampare” ora e data automaticamente in una foto
Attenzione
Questo articolo è stato pubblicato più di un anno fa, potrebbero esserci stati sviluppi.
Ti preghiamo di tenerne conto.
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, sfocare, tagliare, 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.
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.
3 commenti
Michele · 19 Settembre 2010 alle 3:14 PM
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’
TheJoe · 19 Settembre 2010 alle 1:18 PM
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.
Michele · 19 Settembre 2010 alle 8:28 AM
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