[ImageMagick] Aktuelles Datum in Bild schreiben

Einem Menschen zu helfen bringt Freude in die Welt. Probier es gerne einmal aus.
ERSTER BEITRAG DES THEMAS
Benutzeravatar
Versingled
Meisterschreiberling
Beiträge: 6394
Registriert: 18 Jan 2015 11:37
Geschlecht: männlich
AB-Status: AB
Ich bin ...: unfassbar.
Wohnort: 48°43'31.23"N, 9°11'38.61"E, 436m über NN + 12 Etagen

[ImageMagick] Aktuelles Datum in Bild schreiben

Beitrag von Versingled »

Ich habe eine IP-Camera, die alle 5 Minuten ein Bild auf einen FTP-Server im Heimnetz lädt. Dort wird die Datei umbenannt (und später mal in's Netz gestellt werden).
Ich würde nun gerne den Zeitstempel der Bilddatei in's Bild "drucken". Wie das mit Text geht weiß ich ... wie kriege ich den Zeitstempel da rein?
Zukünftig hauptsächlich im https://www.ab-forum.de zu finden.

ERSTER BEITRAG DES THEMAS
Benutzeravatar
NeC
Keiner schreibt schneller
Beiträge: 2823
Registriert: 09 Okt 2011 13:37
Geschlecht: männlich
AB-Status: AB Vergangenheit
Ich bin ...: nur an Frauen interessiert.
Wohnort: Niedersachsen

Re: [ImageMagick] Aktuelles Datum in Bild schreiben

Beitrag von NeC »

Versingled hat geschrieben:... wie kriege ich den Zeitstempel da rein?
Wenn Du weißt, wie man Text ins Bild bekommt, brauchst Du doch nur noch den Zeitstempel als Text. (Oder ich kapiere Deine Frage nicht...)

Code: Alles auswählen

TIMESTAMP=$(date -r MyFile.jpg +'%Y-%m-%d, %H:%m:%S')
montage -label "$TIMESTAMP" MyFile.jpg -geometry +0+0 -background Gold MyFile_annotated.jpg
Falls Du weißt, wie Du den Zeitstempel als Text bekommst, aber nicht wie der dann ins Bild kommt: http://www.imagemagick.org/Usage/annotating/
Benutzeravatar
Versingled
Meisterschreiberling
Beiträge: 6394
Registriert: 18 Jan 2015 11:37
Geschlecht: männlich
AB-Status: AB
Ich bin ...: unfassbar.
Wohnort: 48°43'31.23"N, 9°11'38.61"E, 436m über NN + 12 Etagen

Re: [ImageMagick] Aktuelles Datum in Bild schreiben

Beitrag von Versingled »

NeC hat geschrieben:
Versingled hat geschrieben:... wie kriege ich den Zeitstempel da rein?
Wenn Du weißt, wie man Text ins Bild bekommt, brauchst Du doch nur noch den Zeitstempel als Text. (Oder ich kapiere Deine Frage nicht...)

Code: Alles auswählen

TIMESTAMP=$(date -r MyFile.jpg +'%Y-%m-%d, %H:%m:%S')
montage -label "$TIMESTAMP" MyFile.jpg -geometry +0+0 -background Gold MyFile_annotated.jpg
Das zaubert mir einen schönen goldenen Streifen in's Bild, allerdings ohne Text.
NeC hat geschrieben: Falls Du weißt, wie Du den Zeitstempel als Text bekommst, aber nicht wie der dann ins Bild kommt: http://www.imagemagick.org/Usage/annotating/

Code: Alles auswählen

date > date.txt
schreibt mir den Zeitstempel in eine Datei. Wie kriege ich den Inhalt der Datei dann mit convert in das Bild geschrieben?
Zukünftig hauptsächlich im https://www.ab-forum.de zu finden.
Benutzeravatar
NeC
Keiner schreibt schneller
Beiträge: 2823
Registriert: 09 Okt 2011 13:37
Geschlecht: männlich
AB-Status: AB Vergangenheit
Ich bin ...: nur an Frauen interessiert.
Wohnort: Niedersachsen

Re: [ImageMagick] Aktuelles Datum in Bild schreiben

Beitrag von NeC »

Versingled hat geschrieben:Das zaubert mir einen schönen goldenen Streifen in's Bild, allerdings ohne Text.

Code: Alles auswählen

date > date.txt
schreibt mir den Zeitstempel in eine Datei. Wie kriege ich den Inhalt der Datei dann mit convert in das Bild geschrieben?
Dafür musst Du doch den Inhalt der Datei "nur" in eine Shell-Variable bekommen, und die dann beim Aufruf von 'convert' statt dem Klartext angeben. Was für eine Shell benutzt Du denn eigentlich, wenn das erste Beispiel nicht geht?
Bist Du vielleicht auf einem Windows unterwegs? Da funktioniert das mit den Shell-Variablen ja etwas anders.

Mit der Bash:

Code: Alles auswählen

echo blabla > test.txt
DATEIINHALT=$(cat test.txt)
echo $DATEIINHALT
Mit der Windows-Shell (Achtung: keine zusätzlichen Leerzeichen einfügen):

Code: Alles auswählen

echo blabla > test.txt
set /p DATEIINHALT=<test.txt
echo %DATEIINHALT%
Edit: vielleicht hast Du auf Deinem FTP-Server auch ein ganz abgestecktes System laufen, auf dem es statt der Bash nur die "sh" gibt? Da ginge es dann so (Achtung: der Fliegenschiss sind rückwärts gerichtete Akzentzeichen)

Code: Alles auswählen

echo blabla > test.txt
DATEIINHALT=`cat test.txt`
echo $DATEIINHALT
orthonormal

Re: [ImageMagick] Aktuelles Datum in Bild schreiben

Beitrag von orthonormal »

Lade mal die Datei https://upload.wikimedia.org/wikipedia/ ... /Lenna.png in einen Ordner zusammen mit dem folgenden Skript:

Code: Alles auswählen

#!/bin/sh

DATE=`date`
INPUT="Lenna.png"
OUTPUT="Lenna-anno.png"
FONT="Courier"
SIZE=25
TEXTCOLOR="#ffffff"
UNDERCOLOR="#000000c0"
POSITION="SouthEast"

convert "$INPUT" -gravity "$POSITION" -font "$FONT" -pointsize "$SIZE" \
    -fill "$TEXTCOLOR" -undercolor "$UNDERCOLOR" \
    -annotate 0 "$DATE" "$OUTPUT"
Wenn alles klappt, sollte nach dem Ausführen ein Zeitstempel in Lenna-anno.png stehen.
Benutzeravatar
Versingled
Meisterschreiberling
Beiträge: 6394
Registriert: 18 Jan 2015 11:37
Geschlecht: männlich
AB-Status: AB
Ich bin ...: unfassbar.
Wohnort: 48°43'31.23"N, 9°11'38.61"E, 436m über NN + 12 Etagen

Re: [ImageMagick] Aktuelles Datum in Bild schreiben

Beitrag von Versingled »

NeC hat geschrieben:
Versingled hat geschrieben:Das zaubert mir einen schönen goldenen Streifen in's Bild, allerdings ohne Text.

Code: Alles auswählen

date > date.txt
schreibt mir den Zeitstempel in eine Datei. Wie kriege ich den Inhalt der Datei dann mit convert in das Bild geschrieben?
Dafür musst Du doch den Inhalt der Datei "nur" in eine Shell-Variable bekommen, und die dann beim Aufruf von 'convert' statt dem Klartext angeben.
Das mit den Variablen habe ich noch nie verstanden ... :roll:
NeC hat geschrieben: Was für eine Shell benutzt Du denn eigentlich, wenn das erste Beispiel nicht geht?
Bash
NeC hat geschrieben: Bist Du vielleicht auf einem Windows unterwegs? Da funktioniert das mit den Shell-Variablen ja etwas anders.
Im Moment sitze ich an einem Win-Schleppie und bin via Terminal auf dem Server eingeloggt.
Zukünftig hauptsächlich im https://www.ab-forum.de zu finden.
Benutzeravatar
Versingled
Meisterschreiberling
Beiträge: 6394
Registriert: 18 Jan 2015 11:37
Geschlecht: männlich
AB-Status: AB
Ich bin ...: unfassbar.
Wohnort: 48°43'31.23"N, 9°11'38.61"E, 436m über NN + 12 Etagen

Re: [ImageMagick] Aktuelles Datum in Bild schreiben

Beitrag von Versingled »

orthonormal hat geschrieben:Lade mal die Datei https://upload.wikimedia.org/wikipedia/ ... /Lenna.png in einen Ordner zusammen mit dem folgenden Skript:

Code: Alles auswählen

#!/bin/sh

DATE=`date`
INPUT="Lenna.png"
OUTPUT="Lenna-anno.png"
FONT="Courier"
SIZE=25
TEXTCOLOR="#ffffff"
UNDERCOLOR="#000000c0"
POSITION="SouthEast"

convert "$INPUT" -gravity "$POSITION" -font "$FONT" -pointsize "$SIZE" \
    -fill "$TEXTCOLOR" -undercolor "$UNDERCOLOR" \
    -annotate 0 "$DATE" "$OUTPUT"
Wenn alles klappt, sollte nach dem Ausführen ein Zeitstempel in Lenna-anno.png stehen.
Danke ... das hat geklappt.
Zukünftig hauptsächlich im https://www.ab-forum.de zu finden.

Zurück zu „ABs helfen ABs“