Sziasztok.
Szeretnék néhány száz képből, melyek különböző fényképezőgépekből születtek, valami áttekinthetőbbet alkotni.
Azt találtam ki, hogy a fájl neve a dátum legyen, utóneve meg az eredeti, fényképezőgép-adta név. Így megmarad az, hogy miből lett, és azonnal látszik, mikori.
#!/bin/bash
#datum szerinti atnevezes
#exiv2 -r'%Y%m%d_%H%M%S_:basename:' rename ./*.JPG
# ezt elvetettem, pedig a basename rendesen kijön
#szerzoi jogok hozzaadasa
exiftool -copyright="xy 2016, All right reserved" \
-author="XYZ" \
-d %y%m%d_%H%M%S%%c_:basename:.%%e "-FileName<CreateDate" ./*.JPG
# most itt meg a :basename: helyében kellene az eredetinek kerülnie, de tanácstalan vagyok.
exit 0
Kérdés: exiftoolnál hogyan hivatkozom a képfájl nevére?
Pl. "kep1.jpg" esetében a "kep1" stringre?
Megjegyzés: eredeti témanyitó bejegyzésemet már tudom módosítani. (kösz, trey)
- 1132 megtekintés
Hozzászólások
Sziasztok.
Szeretnék néhány száz képből, melyek különböző fényképezőgépekből születtek, valami áttekinthetőbbet alkotni.
Azt találtam ki, hogy a fájl neve a dátum legyen, utóneve meg az eredeti, fényképezőgép-adta név. Így megmarad az, hogy miből lett, és azonnal látszik, mikori.
#!/bin/bash
#datum szerinti atnevezes
#exiv2 -r'%Y%m%d_%H%M%S_:basename:' rename ./*.JPG
# ezt elvetettem, pedig a basename rendesen kijön
#szerzoi jogok hozzaadasa
exiftool -copyright="xy 2016, All right reserved" \
-author="XYZ" \
-d %y%m%d_%H%M%S%%c_:basename:.%%e "-FileName<CreateDate" ./*.JPG
# most itt meg a :basename: helyében kellene az eredetinek kerülnie, de tanácstalan vagyok.
exit 0
Kérdés: exiftoolnál hogyan hivatkozom a képfájl nevére?
Pl. "kep1.jpg" esetében a "kep1" stringre?
Megjegyzés: eredeti témanyitó bejegyzésemet nem tudom módosítani.
- A hozzászóláshoz be kell jelentkezni
All rights reserved.
- A hozzászóláshoz be kell jelentkezni
[/code]
Zárd le a code taget.
egyébként:
basename kep1.jpg .jpg
--
A főnököm mindig megtartja amit ígér, ha pénzt ígér azt is!
- A hozzászóláshoz be kell jelentkezni
a topicnyitóban nekem egy ideje nincs "szerkesztés" fül.
az exiftool paraméterében a basename nem működik, átnyálaztam a manualt, nem találtam benne utalást.
- A hozzászóláshoz be kell jelentkezni
off
Megszűnt a lehetősége 7 éves tagság alatt, mert voltak, akik nem túl gerinces módon törölték saját témájukat, beszántva ezzel értékes hozzászólásokat. Tették ezt azért, mert önérzetesek, szégyellték a kérdést, ha egyszerű volt a válasz. A baj ezzel csak az, hogy akik válaszoltak, azok ideje is ment a levesbe, illetve a közönség nem tanulhatott az esetből. Így a törlés, szerkesztés lehetősége megszűnt. Blogban megmaradt.
on
Nem értem. Miért az exif-ből kell neked a filenév, amikor azt a filerendszer tárolja? A filenevet tudod, hiszen azt adod át paraméterül annak a programnak, amely kiszedi az exif infókat a kép file-ból.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Módosítva: locsemege kolléga észrevette.
--
Tortilla; A tortilla a spanyol nyelvterületek tradicionális étele! Hagyd már; ABBA!; Droppboksz
- A hozzászóláshoz be kell jelentkezni
Azért, mert ha az exiftoolnak *.JPG-vel adom meg a fájlokat a paraméteres indítással, képtelen vagyok $valami-vel átadni neki az éppen aktuális fájlra vonatkozó fájlnév-töredéket:
basename="_teszt" #nem jo ez igy.
exiftool -copyright="All right reserved" \
-author="bzs" \
-d %y%m%d_%H%M%S%%c$basename.%%le "-FileName < CreateDate" ./*.JPG
Az exiv2-nél rendben ment:
exiv2 -r'%Y%m%d_%H%M%S_:basename:' rename ./*.JPG
Az eredeti fájlnév elejére berakta ez a dátumot az expozíció időponTYával'. Ezt nem tudom megcsinálni exiftoollal.
- A hozzászóláshoz be kell jelentkezni
Tehát nem tudod használni a bash-t? A filenév egy string. Arra meg Linuxban számtalan megoldás van, hogyan dolgozz fel egy szöveget: tr, sed, awk, cut, paste, bash. Nézd csak, „kiterjesztés” - de utálom ezt a szót, csak a filenév része - levágása:
a=valami.akarmi.JPG; echo "${a%.*}"
valami.akarmi
Ehhez hozzáfűzhetsz akár kisbetűkkel egy .jpg-t, ha úgy esik jól. Az mv -f parancsnak átadva meg át is van nevezve. De persze van rename parancs is, amelynek legalább 3 paramétere van: miről mire mit.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Köszönöm. De mint mondtam, nem bash odakinn, hanem exiftool paraméterek belül.
Amúgy rájöttem ösztönből, ezzel lehet fájnévre hivatkozni:
%%f
Azaz a sorom így hangzik:
for pictures in ./*{.JPG,.JPEG,.PNG}
do
echo "Working on "$pictures" ..."
exiftool -overwrite_original \
-copyright="All right reserved" \
-author="bzs" \
-d %y%m%d_%H%M%S%%c_%%f.%%le "-FileName<CreateDate" $pictures
done
# jol lathato a %%f. Ezt kerestem.
- A hozzászóláshoz be kell jelentkezni
Nekem csak az nem világos, miért kell az exiftool eszközével megcsinálni feltétlenül, tekintve, hogy a shellel is tudsz stringet helyettesíteni, amelyet már készen adhatsz az exiftool-nak, de lehetett volna úgy is, hogy nem röptében írod felül a file-t - áramszünet esetén kellemetlen -, hanem kiírod egy általad bármilyen jól kitalált nevű file-ba, amelyet a shellel állítasz össze, majd a régit, tehát az input file-t törlöd.
Szerk.: különben a %%f nekem fura, a doksi szerint a %% literális %-ot jelent az strftime-nak, de ezek szerint ezt követően végig megy rajta az exiftool, s ha talál %f-et, oda filenevet helyettesít. Ugye, az strftime-ban a %%-ból % lett.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Áramkimaradás...
Minden amit ezzel tenni fogok, ramdrájvon fog menni. A kész eredményt pedig mentem onnan. Az eredeti meg marad SD kártyán, nagyon jól becsomagolva.
A %%f-en én is meglepődtem.
Bashban is sok mindent lehetett volna, de most az exiftoolt tanulmányoztam. Megérte. :)
Amúgy a hupra a "FileName<CreateDate" stringet élmény volt a code közé beírni. aztán valamivel sikerült.. Alig hagytam szutykot magam után
- A hozzászóláshoz be kell jelentkezni
<
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
internetszakadás miatt duplikált bejegyzés
- A hozzászóláshoz be kell jelentkezni
internetszakadás miatt duplikált bejegyzés
- A hozzászóláshoz be kell jelentkezni
internetszakadás miatt duplikált bejegyzés
- A hozzászóláshoz be kell jelentkezni
Ezt olvasd el, és jelentkezz.
Aztán tudod szerkeszteni.
--
Tortilla; A tortilla a spanyol nyelvterületek tradicionális étele! Hagyd már; ABBA!; Droppboksz
- A hozzászóláshoz be kell jelentkezni
Ja, tényleg, neki már megvan a bűvös 7 éve. Nekem még 1 év van addig.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
bzs, zárd le a code taget: itt
--
Tortilla; A tortilla a spanyol nyelvterületek tradicionális étele! Hagyd már; ABBA!; Droppboksz
- A hozzászóláshoz be kell jelentkezni
Le van zárva:
Csak a < code > és a < /code > nyitás-zárás sikerült, [] közöttieknél eltűnt a kód fele a frontenden. Ez volt a topicnyitóban is. Már szívtam régen ilyennel, de mára elfelejtettem ezt is. Öregszem.
- A hozzászóláshoz be kell jelentkezni
Ez a titka, hogy ha hosszú kód van a bevezetőben, a preview eltöri, s lezáratlan marad, de csak az. Mármint a preview. A megoldás, hogy forszírozod a preview hosszát, előbb bezárod a code szekciót, utána pedig újranyitod:
<code>
Ez látszik a preview-ban. Meg persze akkor is, ha a témára kattintanak.
</code>
<!--break-->
<code>
Ez meg csak a részletes nézetben, amikor a témára kattintottak.
</code>
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
azt hiszem értem a brékelést, logikus. Mint a joomlában a readmore, amitől elején mindenki fejlövést kap.
- A hozzászóláshoz be kell jelentkezni
Ha ennyire fontos a ©, akkor ImageMagick-kel tegyél a képekbe(re) watermarkot is.
--
Tortilla; A tortilla a spanyol nyelvterületek tradicionális étele! Hagyd már; ABBA!; Droppboksz
- A hozzászóláshoz be kell jelentkezni
Az is lesz. Azt a convert rakja be.
- A hozzászóláshoz be kell jelentkezni
Igen, ImageMagick-ről beszéltem. De, vagy a convert, vagy a composite parancs, amelyik megoldás jobban tetszik neked.
--
Tortilla; A tortilla a spanyol nyelvterületek tradicionális étele! Hagyd már; ABBA!; Droppboksz
- A hozzászóláshoz be kell jelentkezni
Igen, a convert annak a része. A leírás viszont tetszik, már meg is találtam ami kell a vízjelhez :)
- A hozzászóláshoz be kell jelentkezni
Mivel fentebb megoldódott az exifes dolog, kitaláltam a pixeles vízjelet is:
for name in ./*{.JPG,.PNG}; do
echo "Working on "$name" ..."
convert -auto-orient \
-normalize \
-resize 640x480 "$name" "${name/.jpg/-temp}"
convert -size 1000x40 xc:none -gravity center \
-font Anaktoria -pointsize 18 \
-stroke black -strokewidth 2 -annotate 0 'Photo én © valami.net' \
-background none -shadow 100x3+0+0 +repage \
-stroke none -fill white -annotate 0 'Photo én © valami.net' \
${name/.jpg/-temp} +swap -gravity south -geometry +0-3 \
-composite ${name}_web.jpg
rm -f ${name/.jpg/-temp}
done
# vegul datum szerint konyvtarakba rendezzuk a cuccot:
exiftool -d %Y/%m/%d/ "-Directory<CreateDate" ./*_web.jpg
Szóval itt fent képátméretezés, orientáció-megállapítás, vízjelezés történik, majd könyvtárba rendezés és takarítás.
A fájlnevek rondák, kétszer szerepel a jpg bennük, de ezt már így hagyom
- A hozzászóláshoz be kell jelentkezni