Sida 1 av 1
Lägga in datum på bilder
Postat: 15 jun 2011, 21:52
av rkl
Jag har ett stort antal bilder som jag tagit med digitalkamera och avser skicka till ex Extra Film för att få dessa framkallade på papper.
På varje bild vill jag visa det datum då bilden togs.
Jag hittar datumet med Program/Grafik/Fotohanteraren Shotwell, men hur får jag in datumet på bilden?
Tacksam för hjälp.
Re: Lägga in datum på bilder
Postat: 16 jun 2011, 02:23
av ubot
Det går säkert att lägga till text på bilderna med kommandot:
Kod: Markera allt
convert -font helvetica -fill black -pointsize 25 -draw 'text 30,30 "Var är datumet?"' old.png new.png
Det gäller att hitta ett lämpligt mått istället för text 30,30 för att få texten där man vill. Det kanske går att styla texten lite också så att den ser lite snyggare ut på fotografiet. Dessutom krävs att man har datumstämpeln som variabel istället för texten "Var är datumet?". Och det är där nästa problem kommer in:
Det du behöver är ett kommando för att hämta datum-stämpeln på fotografiet. Jag antar att det är lagrat som en etikett på något sätt i bildfilens information. Om det finns ett kommando för att hitta datumet så går det säkert att bygga ett enkelt skript som lägger till en datumstämpel på alla fotografier automatiskt.
Edit: Så här går det att hitta datumstämpeln:
Kod: Markera allt
identify -verbose old.png | grep "date:create:" | grep -oE "[[:digit:]]{4}-[[:digit:]]{2}-[[:digit:]]{2}"
Lösningen blir då ett skript som ser ut ungefär så här:
Kod: Markera allt
#!/bin/bash
for image in $(find $1 -iname '*png'); do
date=$(identify -verbose old.png | grep "date:create:" | grep -oE "[[:digit:]{4}-[[:digit:]]{2}-[[:digit:]]{2}")
convert -font helvetica -fill black -pointsize 25 -draw 'text 30,30 "Var är datumet?"' $image $image.new
done
Där $1 är sökvägen till katalogen där filerna ligger. Jag tror att det här skriptet kommer att fungera med lite finjusteringar bara.
Edit 2: Problemet är att datumet som du ser i Shotwell är väl inte datumet då du tog bilden utan datumet då filen skapades på hårddisken då du förde över bilden från kameran till datorn eller har jag fel? Om det är som jag misstänker så kommer säger ju datumet inte så mycket om när bilden togs.

Re: Lägga in datum på bilder
Postat: 16 jun 2011, 10:56
av ubot
Kod: Markera allt
#!/bin/bash
for image in $(find $1 -iname '*.jpg'); do
date=$(exiv2 $image | grep "Image timestamp" | grep -oE "[[:digit:]]{4}:[[:digit:]]{2}:[[:digit:]]{2}")
convert -font helvetica -fill black -pointsize 25 -draw 'text 30,30 "Datum: $date"' $image $image.new
done
Det här måste bytas ut mot något som fungerar med en variabel: -draw 'text 30,30 "Datum: $date"' Jag vet inte riktigt hur man löser det. Annars tror jag att skriptet fungerar helt ok. $image.new är ju inte en så snygg lösning heller.
Du kopierar och klistrar in koden här ovanför i en vanlig fil med Gedit eller någon annan texteditor. Döp filen till datumskript.sh eller något annat lämpligt. Därefter sätter du exekveringsrättigheter på skriptet. Du kör det med kommandot: ./datumskript.sh /path/to/image/files
Skriptet ska nu lägga till en datumtext på dina fotografier. Det är lite finlir att få texten att ligga rätt och det går säkert att styla texten så den ser lite snyggare ut än vanlig svart text med helvetica typsnitt.
Ta backup på bilderna innan du testkör skriptet så du inte sabbar dina fotografier!!! Tänk på att skriptet kommer att gå in i underkataloger också!
Re: Lägga in datum på bilder
Postat: 16 jun 2011, 13:02
av Lao Tzu
Utanför ämnet: Flyttad från "Guider och tips".
Re: Lägga in datum på bilder
Postat: 18 jun 2011, 16:52
av rkl
Tack för svaret. Detta verkar väl svårt för mig som inte kan programmera.
Tidigare har jag använt ett program jag fick med min Canon kamera, Zoom Browser, som är skrivet för Windows.
Genom att, i programmet, välja att "lägga in text" på bilden, fick jag upp ett alternativ att "lägga in datum när bilden togs". Datumtexten kan jag ändra som jag vill till storlek, typsnitt mm.
Jag har kvar skivan jag fick med kameran, men lyckas inte installera den i min dator med Linux OS. Har installerat Wine, men vet inte hur jag skall använda det. Kan jag utnyttja Wine för att kunna installera från skivan? Hur??
Har sökt i Synaptic, utan att hitta något. Har även sökt på nätet utan att hitta Zoom Browser för Linux.
Mycket tacksam för hjälp.
Re: Lägga in datum på bilder
Postat: 18 jun 2011, 21:55
av ZX Spectrum
Re: Lägga in datum på bilder
Postat: 19 jun 2011, 12:32
av rkl
Hej och tack för ditt svar.
Tyvärr är det ofta så att ni som svarar ofta förutsätter att den som ställer frågan kan programmera eller är mycket datakunnig. I mitt fall är jag begränsad till dels enbart normalbegåvning och dessutom lite allmänn datakunskap då jag använt datorer i flera år.
När det gäller Linux, som jag egentligen gillar skarpt, har jag lärt mig att klistra kommandon i Terminalen och dessutom förstått att all nedladdning helst skall ske via Synaptic.
För att visa vad jag menar klistrar jag in nedanstående citat från den länk du gav mig:
Citat:
1. Install ImageMagick
How to do it is up to you. Personally I installed the MacPorts first, then installed ImageMagick by running a simple command “sudo port install ImageMagick” in a terminal on a Mac running Leopard. You can certainly try the pre-compiled binaries if you’d like.
Slut citat:
Jag kan inte hitta varken MacPorts eller ImageMagick i Synaptic. När jag klickar vidare på MacPorts verkar det som instruktionen avser en Mac-installation. Kommandot för installation av ImageMagick verkar också avse en Mac-installation med Leopard (??).
För en person kunnig i Linux programmering är säkert denna instruktion helt tillräcklig, men inte för mig.
För att jag skall klara detta behöver jag en samling kommadon som jag direkt kan klistra in i Terminalen och sedan trycka på Enter.
Jag är mycket tacksam för att du engagerar dig och hoppas du kan hjälpa mig vidare.
Re: Lägga in datum på bilder
Postat: 19 jun 2011, 12:59
av ZX Spectrum
1. ImageMagick hittar du i synaptic men du måste söka med små bokstäver.
2. Hämta fonterna. Är bara att trycka på download och spara dom på lämpligt ställe. Det handlar om tre olika fonter och jag valde att lägga dom på skrivbordet. Dubbelklicka på vardera av dom och välj installera.
3. Kopiera skriptet som bifogas och högerklicka på skrivbordet och välj "skapa ny fil" och välj sedan "tom fil". Döp filen till "dtstamp.sh".
Högerklicka sen på filen och välj "öppna med textredigerare" och klistra in skriptet som du kopierade. Spara sen filen.
4. Öppna terminalen och skriv
(förutsätter att du la skriptet på skrivbordet)
Nu kommer det roliga när bilderna ska få datum. Skriptet är snällt och gör dubbletter av dina bilder istället för att skriva över dom.
Välj en mapp där bilderna ligger, exempelvis:
Kod: Markera allt
./dtstamp.sh ~/Bilder/Semesterbilder 2010/*.jpg
I mitt fall kommer alla bilder i mappen Semesterbilder 2010 att få en datum/tidsstämpel.
Re: Lägga in datum på bilder
Postat: 19 jun 2011, 13:37
av ZX Spectrum
Jag hittade ett annat program som har ett grafiskt gränssnitt men det verkar betydligt svårare att förstå sig på. Försökte en del men gav upp:
http://photobatch.stani.be/
Re: Lägga in datum på bilder
Postat: 19 jun 2011, 13:55
av rkl
Hej och tack,
Är scriptet du refererar till i din punkt 3, det som står i den grå rutan under punkt 3 i länken, alltså ganska mycket text??
Re: Lägga in datum på bilder
Postat: 19 jun 2011, 15:58
av ZX Spectrum
rkl skrev:Hej och tack,
Är scriptet du refererar till i din punkt 3, det som står i den grå rutan under punkt 3 i länken, alltså ganska mycket text??
Ja, börjar med #!/bin/sh
Re: Lägga in datum på bilder
Postat: 19 jun 2011, 16:05
av ZX Spectrum
Vill poängtera att det är jobbigt med skriptet till en början men sen går det snabbt att få datumet på hundratals bilder.
Re: Lägga in datum på bilder
Postat: 19 jun 2011, 17:51
av rkl
Tack igen,
Det går inte att klistra in scriptet i katalogen på skrivbordet.
Följande står i en röd rad med ett rött tecken med vit horisontell rad, när jag försöker öppna med textredigerare.
/home/rl/Skrivbord/dtstamp.sh är en katalog.
Kontrollera att du angav platsen korrekt och försök igen.
Skall Linux vara så här besvärligt??
Re: Lägga in datum på bilder
Postat: 19 jun 2011, 18:13
av ZX Spectrum
rkl skrev:Tack igen,
Det går inte att klistra in scriptet i katalogen på skrivbordet.
Följande står i en röd rad med ett rött tecken med vit horisontell rad, när jag försöker öppna med textredigerare.
/home/rl/Skrivbord/dtstamp.sh är en katalog.
Kontrollera att du angav platsen korrekt och försök igen.
Skall Linux vara så här besvärligt??
Du har antagligen skapat en mapp. Det är en textfil du ska skapa.
Re: Lägga in datum på bilder
Postat: 19 jun 2011, 19:08
av rkl
Tack igen för din enträgenhet.
Jag skapade en fil i hemmamappen Bilder1 och i den, en mapp Bilder2, för att pröva om jag fick sökvägen rätt.
Så här ser Terminalen ut nu:
rl@rl-desktop:~$ cd Skrivbord
rl@rl-desktop:~/Skrivbord$ chmod +x dtstamp.sh
rl@rl-desktop:~/Skrivbord$ ./dtstamp.sh ~/Bilder1/Bilder2/*.jpg./dtstamp.sh: 48: [[: not found
###### Working on file: /home/rl/Bilder1/Bilder2/*.jpg
identify: unable to open image `/home/rl/Bilder1/Bilder2/*.jpg': @ error/blob.c/OpenBlob/2498.
./dtstamp.sh: 48: arithmetic expression: expecting primary: "/30"
rl@rl-desktop:~/Skrivbord$
Kan de se vad jag gjort för fel; misstänker det har med sökvägen till bildfilen att göra.
Re: Lägga in datum på bilder
Postat: 19 jun 2011, 19:41
av ZX Spectrum
Har du kollat hur det ser ut i mappen med bilder?
Så här ser meddelandena ut för mig:
Kod: Markera allt
kristian@kristian-EP45-UD3R:~/Bilder$ ./dtstamp.sh temp/*.jpg
./dtstamp.sh: 48: [[: not found
###### Working on file: temp/Tingstad 50år aug09 003.jpg
Width: 3872, Height: 2592. Using pointsize: 129
convert: unable to read font `/Users/max/Library/Fonts/digital-7 (mono).ttf' @ warning/annotate.c/RenderType/807.
./dtstamp.sh: 48: [[: not found
###### Working on file: temp/Tingstad 50år aug09 004.jpg
Width: 3872, Height: 2592. Using pointsize: 129
convert: unable to read font `/Users/max/Library/Fonts/digital-7 (mono).ttf' @ warning/annotate.c/RenderType/807.
./dtstamp.sh: 48: [[: not found
###### Working on file: temp/Tingstad 50år aug09 005.jpg
Width: 3872, Height: 2592. Using pointsize: 129
convert: unable to read font `/Users/max/Library/Fonts/digital-7 (mono).ttf' @ warning/annotate.c/RenderType/807.
./dtstamp.sh: 48: [[: not found
###### Working on file: temp/Tingstad 50år aug09 012.jpg
Width: 3872, Height: 2592. Using pointsize: 129
convert: unable to read font `/Users/max/Library/Fonts/digital-7 (mono).ttf' @ warning/annotate.c/RenderType/807.
./dtstamp.sh: 48: [[: not found
###### Working on file: temp/Tingstad 50år aug09 013.jpg
Width: 3872, Height: 2592. Using pointsize: 129
convert: unable to read font `/Users/max/Library/Fonts/digital-7 (mono).ttf' @ warning/annotate.c/RenderType/807.
./dtstamp.sh: 48: [[: not found
###### Working on file: temp/Tingstad 50år aug09 015.jpg
Width: 3872, Height: 2592. Using pointsize: 129
convert: unable to read font `/Users/max/Library/Fonts/digital-7 (mono).ttf' @ warning/annotate.c/RenderType/807.
./dtstamp.sh: 48: [[: not found
###### Working on file: temp/Tingstad 50år aug09 021.jpg
Width: 3872, Height: 2592. Using pointsize: 129
convert: unable to read font `/Users/max/Library/Fonts/digital-7 (mono).ttf' @ warning/annotate.c/RenderType/807.
./dtstamp.sh: 48: [[: not found
###### Working on file: temp/Tingstad 50år aug09 029.jpg
Width: 3872, Height: 2592. Using pointsize: 129
convert: unable to read font `/Users/max/Library/Fonts/digital-7 (mono).ttf' @ warning/annotate.c/RenderType/807.
./dtstamp.sh: 48: [[: not found
###### Working on file: temp/Tingstad 50år aug09 030.jpg
Width: 3872, Height: 2592. Using pointsize: 129
convert: unable to read font `/Users/max/Library/Fonts/digital-7 (mono).ttf' @ warning/annotate.c/RenderType/807.
./dtstamp.sh: 48: [[: not found
###### Working on file: temp/Tingstad 50år aug09 032.jpg
Width: 3872, Height: 2592. Using pointsize: 129
convert: unable to read font `/Users/max/Library/Fonts/digital-7 (mono).ttf' @ warning/annotate.c/RenderType/807.
Jag la mina bilder under Bilder-mappen i en mapp som heter temp och resultatet blir att jag får en uppsättning till med bilder:
Kod: Markera allt
Tingstad 50år aug09 003_DT.jpg
Tingstad 50år aug09 003.jpg
Tingstad 50år aug09 004_DT.jpg
Tingstad 50år aug09 004.jpg
Tingstad 50år aug09 005_DT.jpg
Tingstad 50år aug09 005.jpg
Tingstad 50år aug09 012_DT.jpg
Tingstad 50år aug09 012.jpg
Tingstad 50år aug09 013_DT.jpg
Tingstad 50år aug09 013.jpg
Tingstad 50år aug09 015_DT.jpg
Tingstad 50år aug09 015.jpg
Tingstad 50år aug09 021_DT.jpg
Tingstad 50år aug09 021.jpg
Tingstad 50år aug09 029_DT.jpg
Tingstad 50år aug09 029.jpg
Tingstad 50år aug09 030_DT.jpg
Tingstad 50år aug09 030.jpg
Tingstad 50år aug09 032_DT.jpg
Tingstad 50år aug09 032.jpg
Alla bilder som har DT i namnet har numera datumstämpel.
Re: Lägga in datum på bilder
Postat: 20 jun 2011, 02:42
av Konservburk
[[: not found betyder att det står #!/bin/sh högst upp i skriptet, men att det egentligen borde stå #!/bin/bash istället. Eftersom bash och sh är samma sak på många system (dock ej på ubuntu) så märker inte den som skrivit skriptet dessa problem.
Re: Lägga in datum på bilder
Postat: 24 jun 2011, 01:48
av ubot
Du kan nog glömma att använda ZoomBrowser i Ubuntu m.h.a. Wine:
http://appdb.winehq.org/objectManager.p ... n&iId=6968
Det står att det fungerar skräp i Wine. Det är inte alla Windows-program som fungerar i Wine. Så skivan som du hade till kameran har du inte någon användning för i Linux.
Re: Lägga in datum på bilder
Postat: 24 jun 2011, 01:59
av ubot
Vad tror ni om programmet Phatch då och funktionen Action Text och variablerna <year><month><day>?
http://photobatch.wikidot.com/action-text
http://photobatch.wikidot.com/variables
Jag menar om det går att lägga till variabeln <dpi> här:
http://photobatch.wdfiles.com/local--fi ... nabled.png så går det kanske att lägga till variablerna <year> o.s.v. under Action Text?