Kirjoittaja Aihe: Kuvien tallennus digikamerasta hakemistorakenteeseen päiväyksen mukaan...  (Luettu 6447 kertaa)

Sage

  • Käyttäjä
  • Viestejä: 14
    • Profiili
Eli löytyykö valmiina ohjelmaa jolla voisi tallentaa digikuvat kamerasta hakemistorakenteeseen päiväyksen mukaan automaattisesti kuten esim. canonin oma ohjelma windowssin puolella?

Haluttu rakenne olisi:
YYYY/MM/DD/filename.jpg

Esim. digiKam:lla kuvat voi tallentaa albumeihin ja katsella kuvia myöhemmin päiväysjärjestyksessä. Mutta itse kuvat ovat tällöin kuitenkin kaikki albuminen hakemistossa. Tietenkin tämä onnistuisi tekemällä jokaiselle päivälle oma albumi, mutta pidemmän päälle tämä on todella hidasta ja vaikeaa jos kuvat lataa kamerasta vaikkapa kuukauden kuluttua kun muistikorttilla on 1000 kuvaa.

Stargazers

  • Käyttäjä
  • Viestejä: 549
    • Profiili
Jaa-a. Enpäs osaa sanoa onko missään valmiina moista ominaisuutta, mutta shelliskriptoillahan moinen onnistuu näppärästi?
Tein sinulle jonkinlaisen pohjan, en kerta tiedä onko sinulla aikaisempaa kokemusta skriptien kirjoittamisesta.

Tämä skripta siis tekee lyhyesti tämän.
1) Tekee kansioon "temp" nimisen hakemiston
2) Siirtyy sinne
3) Lataa kamerasta kaikki kuvat siihen temp-hakemistoon
4) Tutkii jokaisen kuvan päivämäärän ja luo kansiot muotoa YYYY/MM/DD/
5) Siirtää kuvan siihen kansioon

Eli siis, step-by-step ohje (toivottavasti on tarpeeksi selkeä):
1) Tarvittavat ohjelmat "gphoto2" sekä "exiv2". gphoto2 on mitä skriptini käyttää siirtäessä kuvat kameralta tietokoneelle. exiv2 on ohjelma jolla saadaan valokuvasta tarkistettua päiväys sekä vuosi sekä kuukausi, jonka mukaan kansiot tehdään.
Jos ei ole asennettu, käynnistä Pääte (Apuohjelmat -> Pääte). "sudo aptitude install gphoto2 exiv2" tai vaihtoehtoisesti asenna graafisilla työkaluilla jos olet niitä tottunut käyttämään.

2) Avaa tekstieditori (vaikka Gnomen oma gedit) ja kirjoita sinne tämä (copy-paste)
Koodia: [Valitse]
#!/bin/bash

# Luodaan hakemisto mihin ladataan kuvat
if [ -e "temp" ]
then
    cd temp
else
    mkdir temp
    cd temp
fi

# Ladataan KAIKKI kuvat
gphoto2 --auto-detect --get-all-files

# Katsotaan exiv2-ohjelmalla jokaisen kuvan päiväys
for i in *.JPG; do
    picyear=`exiv2 $i | grep "timestamp" | cut -d ":" -f 2`
    picmonth=`exiv2 $i | grep "timestamp" | cut -d ":" -f 3`
    picday=`exiv2 $i | grep "timestamp" | cut -b 27-28`

    echo "Kuvatiedosto: $i"
    echo "-------------"
    echo "Vuosi: $picyear"
    echo "Kuukausi: $picmonth"
    echo "Päivä: $picday"

    kansio="$picyear/$picmonth/$picday"
    echo "Kansio johon siirretään: $kansio"

    # Luodaan tarvittaessa kansio YYYY/MM/DD
    if [ -e $kansio ]
    then
        echo "Siirretään kuva $i kansioon $kansio"
        # Siirretään tiedosto oikeaan kansioon
        mv $i $kansio
    else
        echo "Luodaan kansio $kansio"
        # Luodaan kansio, -p luo kansion alakansioineen
        mkdir -p $kansio

        echo "Siirretään kuva $i kansioon $kansio"

        # Siirretään tiedosto oikeaan kansioon
        mv $i $kansio
    fi

    echo

done

3) Tallenna tiedosto vaikka kotikansioosi jollain nimellä, vaikka "lataa.sh" kuten itselläni.

4) Anna ko. skriptille suoritusoikeudet. Eli käynnistä "Pääte" (Apuohjelmista löytyy) ja kirjoita "chmod 755 lataa.sh" (olettaen että tallensit ko. tiedoston nimelle lataa.sh kotikansiosi juurihakemistoon

5) Käynnistä skripti komennolla "./lataa.sh"

6) gphoto2 ohjelma koettaa nyt tunnistaa kamerasi (--auto-detect parametri skriptissä) ja aloittaa siirtämään KAIKKI kuvat.

7) Kun siirto on valmis, skripti käy kaikki kuvat läpi ja tekee päiväyksen mukaiset kansiot ja siirtää kuvan sinne. Päiväys katsotaan valokuvan EXIF-tiedoista ohjelmalla exiv2.

Toivottavasti sait selvää mitä tässä neuvoin :P
Mutta toki jos ei selvinnyt, kysy toki vapaasti niin katsellaan saako toimimaan.
Ainakin omalla koneellani toimi mainiosti.

juyli

  • Vieras
Tietenkin tämä onnistuisi tekemällä jokaiselle päivälle oma albumi, mutta pidemmän päälle tämä on todella hidasta ja vaikeaa jos kuvat lataa kamerasta vaikkapa kuukauden kuluttua kun muistikorttilla on 1000 kuvaa.

Meillä on kovasti erilaiset työtavat. Pyrin mahdollisimman nopeasti kopioimaan kuvat kameran muistikortilta kovalevylle. Tuota varten saan pian hankituksi kannettavankin, joten jopa "reissuilla" saa kuvat talteen. (Mukavampi niitä on katsellakin näytöltä kuin kamerasta).
Kun  kuvia on CD:lle mahtuva määrä, pyrin ne polttamaan talteen.
Kannattaa myös tutustua kuvankäsittelykokonaisuuteen nimeltä ImageMagick++
http://packages.ubuntu.com/gutsy/graphics/imagemagick
PS. Noita kuva-albumi ohjelmiakin on tarjolla, mutta en ole toistaiseksi sellaisia kaivannut.

mgronber

  • Käyttäjä
  • Viestejä: 1458
    • Profiili
Kysyjä voisi tutustua esimerkiksi KPhotoAlbum-ohjelmaan. En tiedä osaako se järjestää kuvia suoraan levylle halutulla tavalla mutta siinä esitetään kuvat hieman eri tavalla kuin digiKamissa ja muistaakseni siinä oli jonkinlainen aikajana selausapuna. KPhotoAlbum löytyy ainakin gutsyn universe-pakettivarastosta.


Tein sinulle jonkinlaisen pohjan, en kerta tiedä onko sinulla aikaisempaa kokemusta skriptien kirjoittamisesta.

Pari kommenttia (vaikka tuo olikin tarkoitettu vain jonkinlaiseksi pohjaksi).

Ensinnäkin skriptisi tekee kuvahakemistot temp-hakemiston alle. En tiedä oliko tämä sinulla tarkoituksena mutta itse olisin odottanut kuvahakemistojen ilmaantuvan skriptin ajohakemiston alle (eli luodun temp-hakemiston rinnalle).

Lisäksi skripti siirtää ainoastaan .JPG-päätteiset tiedostot. Itse en uskaltaisi tehdä oletusta että kaikissa kameroissa käytettäisiin tiedostonimissä suuria kirjaimia.


Stargazers

  • Käyttäjä
  • Viestejä: 549
    • Profiili
Pari kommenttia (vaikka tuo olikin tarkoitettu vain jonkinlaiseksi pohjaksi).

Tottahan toki kommentoida saa.

Ensinnäkin skriptisi tekee kuvahakemistot temp-hakemiston alle. En tiedä oliko tämä sinulla tarkoituksena mutta itse olisin odottanut kuvahakemistojen ilmaantuvan skriptin ajohakemiston alle (eli luodun temp-hakemiston rinnalle).

Niin tekee. Alkuperäinen käyttäjä kerta ei kertonut tarkkaa polkua minne haluaa oletuksena siirtyvän, joten skriptaa tehdessä piti tehdä itse jokin kansio väliaikaisesti minne siirtyy, jotta ei kotihakemistooni tunge omasta kamerastani turhaa kansiota. Sen pystyy helposti muuttamaan, siksi koodissa on kommentit. Tosin, eipä ne välttämättä kaikille aukea, mutta olipahan edes jonkinlainen pohja.


Lisäksi skripti siirtää ainoastaan .JPG-päätteiset tiedostot. Itse en uskaltaisi tehdä oletusta että kaikissa kameroissa käytettäisiin tiedostonimissä suuria kirjaimia.

No juuh, totta tuo. Mutta sitä varten sanoinkin että jos ei toimi, voi kysyä jotta katsellaan saako toimimaan :)

raimo

  • Käyttäjä
  • Viestejä: 4269
  • openSUSE Tumbleweed
    • Profiili
Tottahan toki kommentoida saa.
Minä kanssa! :)
Vuosiluvun edessä on unihku tyhjämerkki, lähinnä "kosmeettinen" haitta, mutta siitä pääsee eroon näin.
Koodia: [Valitse]
picyear=`exiv2 $i | grep "timestamp" | cut -d ":" -f 2 | cut -d " " -f 2`
eli ko. rivin loppuun lisätään vain | cut -d " " -f 2

Sinänsä ihan toimiva skripti, josta muokkasin jo omiin tarpeisiini paremmin soveltuvan version, kiitos hyvästä pohjasta siis! ;)

edit: muokattu räpellykseni löytyy tuolta: http://uhvo.org/sec/kamera.txt jos siis jollakulla on samanlaiset tarpeet kuin minulla.  :D
« Viimeksi muokattu: 12.11.07 - klo:14.39 kirjoittanut raimo »
Tietä käyden tien on vanki. Vapaa on vain umpihanki.
Aaro Hellaakoski

Stargazers

  • Käyttäjä
  • Viestejä: 549
    • Profiili
Vuosiluvun edessä on unihku tyhjämerkki, lähinnä "kosmeettinen" haitta, mutta siitä pääsee eroon näin.
Koodia: [Valitse]
picyear=`exiv2 $i | grep "timestamp" | cut -d ":" -f 2 | cut -d " " -f 2`
eli ko. rivin loppuun lisätään vain | cut -d " " -f 2

Ohoo, joo, niinpäs onkin! Kiitos korjauksestasi :)
Mitäpä voi olettaa kun aamukolmeen asti valveilla väsäten koodia ;)

Sinänsä ihan toimiva skripti, josta muokkasin jo omiin tarpeisiini paremmin soveltuvan version, kiitos hyvästä pohjasta siis! ;)

Hyvä jos joku siitä jotain iloa irti sai, ole hyvä vain :)

mgronber

  • Käyttäjä
  • Viestejä: 1458
    • Profiili
Vuosiluvun edessä on unihku tyhjämerkki, lähinnä "kosmeettinen" haitta, mutta siitä pääsee eroon näin.
Koodia: [Valitse]
picyear=`exiv2 $i | grep "timestamp" | cut -d ":" -f 2 | cut -d " " -f 2`
eli ko. rivin loppuun lisätään vain | cut -d " " -f 2

Minä hankkiutuisin siitä eroon sanomalla | tr -d ' '.

anttimr

  • Käyttäjä
  • Viestejä: 1625
    • Profiili
Lainaus
Lainaus
Eli löytyykö valmiina ohjelmaa jolla voisi tallentaa digikuvat kamerasta hakemistorakenteeseen päiväyksen mukaan automaattisesti kuten esim. canonin oma ohjelma windowssin puolella?

Haluttu rakenne olisi:
YYYY/MM/DD/filename.jpg

Juuri tuolla tavalla Ubuntun oletus valokuvien hallintaohjelma F-Spot tuo kuvat kamerasta, muistikortilta tai mistä vain halutaan. Oletuksena alihakemistot luodaan kotikansioon Valokuvat- nimisen hakemiston alle. Itse en tykkää noin pirstoutuneesta hakemistorakenteesta ja siksikään en käytä F-Spotia, koska se ei (ennen Gutsyä ainakaan) anna muita vaihtoehtoja tuontihakemistojen rakenteeseen.
Ubuntu 12.10 Quantal Quetzal

Sage

  • Käyttäjä
  • Viestejä: 14
    • Profiili
Kiitoksia kaikille ehdotuksista ja vastauksista.

Lainaus
Lainaus
Eli löytyykö valmiina ohjelmaa jolla voisi tallentaa digikuvat kamerasta hakemistorakenteeseen päiväyksen mukaan automaattisesti kuten esim. canonin oma ohjelma windowssin puolella?

Haluttu rakenne olisi:
YYYY/MM/DD/filename.jpg

Juuri tuolla tavalla Ubuntun oletus valokuvien hallintaohjelma F-Spot tuo kuvat kamerasta, muistikortilta tai mistä vain halutaan. Oletuksena alihakemistot luodaan kotikansioon Valokuvat- nimisen hakemiston alle. Itse en tykkää noin pirstoutuneesta hakemistorakenteesta ja siksikään en käytä F-Spotia, koska se ei (ennen Gutsyä ainakaan) anna muita vaihtoehtoja tuontihakemistojen rakenteeseen.
Tämä on juuri se mitä hain ekassa viestissä. Joskin nyt tajusin että olen lajitellut kuvani ennen YYYY/YYY_MM_DD/kuvat.jpg, mutta tämä YYYY/MM/DD/kuvat.jpg käy myös, koska kyseisellä työkalulla saan myös vanhat kuvat lajilteltua samanlailla.

raimo

  • Käyttäjä
  • Viestejä: 4269
  • openSUSE Tumbleweed
    • Profiili
Minä hankkiutuisin siitä eroon sanomalla | tr -d ' '.
No sinä ootkin Kurko!  ;D
Tietä käyden tien on vanki. Vapaa on vain umpihanki.
Aaro Hellaakoski

mgronber

  • Käyttäjä
  • Viestejä: 1458
    • Profiili
Esim. digiKam:lla kuvat voi tallentaa albumeihin ja katsella kuvia myöhemmin päiväysjärjestyksessä. Mutta itse kuvat ovat tällöin kuitenkin kaikki albuminen hakemistossa. Tietenkin tämä onnistuisi tekemällä jokaiselle päivälle oma albumi, mutta pidemmän päälle tämä on todella hidasta ja vaikeaa jos kuvat lataa kamerasta vaikkapa kuukauden kuluttua kun muistikorttilla on 1000 kuvaa.

Nyt kun tarkistin digiKamin ominaisuuksia niin ainakin dokumentaation perusteella haluamasi järjestely onnistuu siinä suoraan.

Automatic Destination Albums Creation
If your camera provides information about the date of the photograph's taking, digiKam can use this to automatically create sub-albums in the destination Album when it is downloaded. Sub-albums names will be based on image dates. All images which have the same date will be downloaded into the same sub-album.
(lähde)

Stargazers

  • Käyttäjä
  • Viestejä: 549
    • Profiili
Nyt kun tarkistin digiKamin ominaisuuksia niin ainakin dokumentaation perusteella haluamasi järjestely onnistuu siinä suoraan.

Itse muistelen että DigiKam tekee kansiot kyllä päivän mukaan, mutta ne on muotoa 2007-11-13 tai vastaavaa (ja itse sitä käytän, se on hyvä o/).

anttimr

  • Käyttäjä
  • Viestejä: 1625
    • Profiili
Tuli aiheesta vielä mieleen, että Gnomessa valokuvien tuontia ehdotetaan automaattisesti, kun kamera tai kameran muistikortti liitetään koneeseen. Järjestelmä > Asetukset > Irrotettavat asemat ja mediat > Kamerat > Digikamera valikossa pääsee määrittelemään komennon, jolla tuonti suoritetaan. Sinnehän voi laittaa sen oman skriptin tai f-spotin käyttäjät vaikka näin:
Koodia: [Valitse]
f-spot --import %m
Ubuntu 12.10 Quantal Quetzal

Risto H. Kurppa

  • Käyttäjä
  • Viestejä: 3024
  • Useita Kubuntuja ajossa.
    • Profiili
    • http://risto.kurppa.fi
Kysyjä voisi tutustua esimerkiksi KPhotoAlbum-ohjelmaan. En tiedä osaako se järjestää kuvia suoraan levylle halutulla tavalla mutta siinä esitetään kuvat hieman eri tavalla kuin digiKamissa ja muistaakseni siinä oli jonkinlainen aikajana selausapuna. KPhotoAlbum löytyy ainakin gutsyn universe-pakettivarastosta.

KPhotoalbumin hienous on juurikin siinä että se ei lähde kuviin koskemaan. Ja muiltakin osin ihan noheva ohjelma, uutta snapshottia valmistellaan parhaillaan julkaistavaksi, itse käytän SVN-versiota. Uusia ominaisuuksia ja bugfixejä tulee mukavaa tahtia, kannattaa tutustua!


r
UUSI UBUNTUN KÄYTTÄJÄ: SÄÄSTÄ AIKAASI LUKEMALLA  -> TÄMÄ <-