- blogg.ngn.nu - http://blogg.ngn.nu -

Onsdag

(not 160218: Publicerad)

Skanning
Mera fotoalbum från Mor och Fars samling inskannat.

Programmering
Fastnade i ett programmeringsproblem. Det har å göra med skanningen.

De bilder jag skannar skapar jag i två exemplar. En 'stor' som lämnas orörd och ska sparas å lämpligt media inför framtiden och en mindre – ofta redigerad – som är tänkt att laddas in i f-spot. I f-spot brukar jag sk tagga bilderna.
Kom på att det kanske går att tagga bilderna redan i samband med skannandet.
Inte direkt i samband med skannandet, men strax efter.
Det tog mig ca 6 timmar att klura ut hur jag ville ha det.

Nu kan jag i Filhanteraren (linux motsvarighet till Utforskaren i windows), markera en fil, högerklicka på den och via menyer välja en funktion (bash-skript) som visar en sk inmatningsruta. I den kan jag, kommaseparerat, skriva in de taggar jag vill tagga bilden med.

Först försökte jag med följande sk script:

#! /bin/bash
#
# Lägger till EXIF taggar
# Hämta taggar
svar=$(zenity –entry –title="Lägg till taggar, kommaseparerade." –text="Taggar:")
# Skriv dem till bildfilen
exiftool "-Subject=$svar" "$1"

Fick inte det där att fungera…
Och det var väl egentligen tur det.
Hade det fungerat så hade eventuellt befintliga taggar blivit raderade om jag inte skrev in något.

Efter ett bra tag så kom jag på vad som gjorde att ovanstående vägrade att skriva EXIF-taggar till bildfil. Skrev jag följande i terminalen:
exiftool -Subject=Jag, Var, Vad TST.jpg
Så funkade det…

Lösningen stod att finna i att via bash (skriptfil) så används en annan sk teckentolk. Mellanrummen fick en annan betydelse, via bash – fast det syntes inte. Det märktes när jag importerade bildfilen till f-spot. F-spot kunde då inte tolka taggarna, om det var mer än en.

Det tog ännu längre tid att fixa till ett skript som kom förbi det där och samtidigt löste andra problem. Så här blev det:

#! /bin/bash
#
# Lägger till EXIF taggar
# Hämta taggar
svar=$(zenity –entry –ok-label="Klar" –width="600" –title="Lägg till taggar, kommaseparerade." –text="Taggar:")
#Kontrollera vilken knapp som valts
if [[ $? -eq 1 ]] ; then
  # Avbryt klickad
  exit
else
  # Knappen 'Klar' vald
  # Lägg till taggar
  # Försöker fixa ev fel
  exiftool "-F" "$1"
  # separator
  IFS=','    # Ett 'Trick' som fixar till 'separeringen' i en matris (array)
  # En loop
  for i in "${svar[@]}"
    do

      # Trimma strängen
      notrim=$i
      trim="${notrim#"${notrim%%[![:space:]]*}"}" #framför
      notrim=$trim
      trim="${notrim%"${notrim##*[![:space:]]}"}" #baktill
      # Skriv taggarna till bildfil "$1"

      # Ta bort en tagg om den redan finns '-='
      exiftool "-m" "-overwrite_original_in_place" "-Subject-=$trim" "$1"
      # Lägg till den '+='
      exiftool "-m" "-overwrite_original_in_place" "-Subject+=$trim" "$1"
    done
fi
## -F > en sk option som försöker fixa till fel i bildfilens EXIF
## IFS > en sk konstant variabel som i det här fallet kan 'laddas' med önskvärd sk separator i en textsträng
## -m > en option som skippar mindre (minor) fel i EXIF
## -overwrite_original_in_place > en sk 'Processing control' som gör så att det inte skapas en backupfil (*.*_original)

> Fixade till bredden på 'rutan': '–width="600"'
> Ändrade namn på 'Ok'-knappen: '–ok-label="Klar"'
> Löste problemet med 'Avbryt'-knappen via: 'if – then – exit – else – fi'
> Löste problemet med 'mellanrummen' via en sk loop: 'for – in – do – done' & 'IFS=', ''
> Visade sig att jag fick fixa väldeliga med att få bort mellanslag, före och efter de sk textsträngarna: 'trim'

Lite skärmbilder som visar effekten av ovanstående:
[Bild: Data; Skript-Menyer]
Skärmbild som otydligt visar ovanstående skripts menyval.
Om jag har en bildfil markerad och högerklickar så har jag bl.a. ett menyval som heter: 'Skript'.
Markerar jag det valet så visas en undermeny, bl.a. 'Bild'.
Markerar jag det valet så visas ytterligare en undermeny och i den kan jag välja skript som behandlar bildfiler på lite olika vis. Bl.a. då 'addEXIFtags'

Klickar jag på det valet så visas skriptets sk inmatningsdialog (zenity –entry).
[Bild: Data; EXIF-Skript, Zenity-entry]

För att få till det med skriptval i högerklicken så datanavigerar man sig fram till:
/home/[inloggad_användare]/.local/share/nautilus/
I den katalogen skapar man en ny katalog: 'scripts'
[Bild: Data; Skript-Mapp]
I den katalogen kan man då som jag gjort lägga skript och skapa kataloger, med skript i.
Katalognamnen blir då menyval i undermenyn till Skript.
'Nautilus' är linux motsvarighet till windows explorer.exe (Utforskaren). I Linux kallas den Filhanteraren (det finns flera att välja bland…). Nautilus är standard.

[Bild: Data; F-spot, EXIF-taggar]
Här är ett skrämfoto på hur det kan se ut i f-spot om jag importerat en bild, som fått EXIF-taggning via mitt skript.
Menyn längst ned till höger visar att allt fungerar till belåtenhet.
Bilden är från S-Kvinnornas 16:e kongress i Folkets Hus i Stockholm. De fick besök av Olof Palme. Han hade ett avslutningsanförande – tror jag, den 4 aug 1981.
Kongressen varade från den 1:a till den 5:e aug 1981.
Mor Vivan var där.

Digital Systemkamera (SONY a100 + Objektiv SONY 4.5-5.6/75-300)
Håller på med bärremmen – den stinker (kattpiss) även efter tvätt i TM. Lade den i blöt med 10cl Ättika till 1dl vatten. Nu har jag sköljt ur den och hängt upp den för torkning.
Får se i morgon hur den luktar…

Överraskning
Hustrun kom hem från Hunnebergsbesök (hon blev inte bergatagen) och stadsbesök. Hon hade med sig en bit tyg. Det färgranna tyg jag fastnade för på tygladan:
[Bild:lgn; Badrum, Tavla]
Nu sitter det fast på en canvastavla, i badrummet :me:

Hälsoläget:
Natten: OK.
Morgon: OK.
Förmiddag: OK.
Dagen: OK. Promenad.
Kvällen: OK – men det blev sent (programmerandet).
[0208080020] 84,6(-1,1) :up: