EXIF Datastore

Das alte Spiel – spät wach. Mein Bruder kam früher, daher für mich zu spät, um mit meiner Nicht zu spielen. Joggen ging – mit wenig Energie.

Eine Idee: das EXIF-Feld
UserComment FieldName = "UserComment
könnte man vielleicht als Blurhash Feld nutzen. Ich lud mir das Repo runter – C-Kompilierung klappte. Damit kann ich das in die Automator Action einbauen und hätte noch eine weitere nützliche Info, die in Themes verwendet werden kann. Die Frage nun die Thumbnail-Größe. Die bisherigen 150 max sind zu wenig – vielleicht 150px Höhe und variierende Breite oder gleich 300? Viel Gewinn zu 720px Normalhöhe (in Landscape) wäre das dann allerdings nicht. Muss ich testen und läuft vielleicht auf 200px Höhe hinaus. Mit responsive Thumbnails fange ich nicht erst an. So mancher nimmt nur 1px als preview. Am besten sollten auch noch die GPS Koordinaten wenigstens der Stadt eingetragen werden. Man kann so ein Thumbnail ganz gut als JSON Ersatz nehmen.

Abends ein paar Docs zum Steuerberater. Dann noch kurz Kleinigkeiten einkaufen. Den Rest Soljanka zum Abendessen und eine Doku über Bären in Kamchatka angeschaut. Lange ist’s her, als ich dort war. Die Schmach, mir den Hubschrauberflug von ca. $2000 nicht zu leisten, ist noch immer da. Aber die Reise mit der Transsib von Vladivostok zurück war cool.

Ich bestellte mir mal aus Spaß Kleinigkeiten. Eine NVME Hülle für externe SSDs mit kleinem USB C- USBC Kabel (ca. €13). Dann noch für so ein USB-C zu USB-C Kabel aus Hongkong, was im März kommen sollte. Ich brauche das für die kleiner Powerbank am Z-Axis Stabi. Schließlich generalüberholte AKG N20U für €23. Hmm, sowei it’s chon gekommen..

Weiter hacken mit Exif. Filesource als Tag fällt weg, weil ein Integer Tag, das eigentlich nicht beschrieben werden kann. Ich suchte eine Weile nach in goexif unterstützten sinnvollen String Tags, die eben nicht komplett sind, wie bei exiftool. Es wird wohl Software (0x0131), was den Speicherort aufnimmt.

Es machte etwas Arbeit aber Dank der guten Doku vom exiftool fand ich die rictigen Tags:
(0xA002: PixelXDimension, 0xA003: PixelYDimension) in goexif nach Spec. Jetzt muss ich mal testen, ob die auch in Hugo in Templates nutzen kann.

Das Skript hatte ich soweit fertig, nur speicherte aus irgendeinem Grund imageresize nicht die richtige Directory. Ich fand den Fehler einfach nicht. Mit einem Pfad davor ging das Bild irgendwie verloren. Ich nahm sharp-cli, fand den Fehler bei Directories, die aber irgendwie auch die non-integer bei owidth / o eheight drin hatten. Als integer mit (()) – Danke Stackoverflow!


#!/bin/bash
export PATH="$PATH:"/usr/local/bin/
shopt -s nocaseglob
set -e
# Convert JPEG images into the size and thumbnails with CLI programs
destdir="/Users/dsc/Pictures/blog/poptravel/t"
mkdir -p $destdir

###############################################################################

for file in "$@"; do
filename="${file##*/}"
f=$file

owidth="$(/usr/bin/sips -g pixelWidth $f|awk '{print $2}')"
oheight="$(/usr/bin/sips -g pixelHeight $f|awk '{print $2}')"

year="${filename:0:4}"
month="${filename:5:2}"
day="${filename:8:2}"
blurhash="$(/usr/local/bin/blurhash_encoder 4 3 $f)"

thumbfile="$destdir/$filename"

#imageresize $f $thumbfile 0x180 -q80 -ahigh
/usr/local/bin/sharp -i $f -o $thumbfile resize 0 180
exiftool \
-exifimagewidth=$((owidth)) \
-exifimageheight=$((oheight)) \
-imagedescription="" \
-artist="Daniel Sczepansky" \
-copyright="$year Daniel Sczepansky (@dsc) / poptravel" \
-imageuniqueid="$year/$month/$day/$filename" \
-usercomment="$blurhash" \
-overwrite_original \
$thumbfile

shopt -u nocaseglob
done

Ende nach 3:00 aber war eben wichtig. Ich fand noch ein paar bessere Tags, die auch in goexif unterstützt werden und war am Ende ganz zufrieden.

0 Responses to “EXIF Datastore”


Kommentare sind zur Zeit nicht möglich.
2021-02-01_17-21-05_IMG_20210201_172105312.jpg
2021-02-01_17-21-05_IMG_20210201_172105312.jpg
2021-02-01_17-23-39_IMG_20210201_172337827.jpg
2021-02-01_17-23-39_IMG_20210201_172337827.jpg
2021-02-01_17-31-44_IMG_20210201_173143497_BURST000_COVER.jpg
2021-02-01_17-31-44_IMG_20210201_173143497_BURST000_COVER.jpg
2021-02-01_17-31-44_IMG_20210201_173143497_BURST003.jpg
2021-02-01_17-31-44_IMG_20210201_173143497_BURST003.jpg
2021-02-01_19-46-03_IMG_20210201_194602.jpg
2021-02-01_19-46-03_IMG_20210201_194602.jpg
2021-02-01_20-12-06_IMG_20210201_201204.jpg
2021-02-01_20-12-06_IMG_20210201_201204.jpg