Handig

Wie vaker dcraw gebruikt, weet dat je vaak hele (soms lange) paden moet intypen om naar een map met raws te navigeren. Zelf heb ik dat opgelost met een paar functies en aliassen in Bash, met als resultaat dat ik een raw-bestand genaamd DSC_1000.NEF snel kan converteren met de simpele terminalopdracht dc 1000. Hieronder lees je hoe.

Open het (verborgen) bestand .bashrc (de bash resource file) in je home-map in een teksteditor. Eerst maken we een functie die we dc noemen(van dcraw), als volgt. Typ onder het lijstje met aliassen, bijna onderaan het bestand, het volgende.

# functie om een nef met dcraw naar 16-bit tiff te converteren
dc() {
echo “DSC_$1.NEF in dcraw > 16-bit tiff”
dcraw -w -T -6 DSC_$1.NEF
echo “klaar”
}

(NEF even veranderen in de raw-extensie van je eigen camera). Aanroepen met dc 1000.

Bestand bewaren en terminal even afsluiten en opnieuw starten (zo wordt het nieuwe .bashrc-bestand ingelezen). Nu kun je het bestand DSC_1000.NEF snel naar een 16-bit tif converteren door in de terminal dc 1000 te typen.

Wat er gebeurt is dat de functie eerst roept (echo’t) wat-ie gaat doen: ik neem een raw-bestand en maak daar met behulp van dcraw een 16-bit tif van. Ik gebruik de witbalans van de camera (die -w), ik maak er een tif van (die -T) met bitdiepte 16 (die -6). Als je deze opdracht geeft, vind je naast de oorspronkelijke raw een bestand genaamd DSC_1000.tiff, dat je naar GIMP of een 16-bit fotobewerker kunt sturen om verder te bewerken.

In eerste instantie deed ik dit automatisch door onder echo “klaar” de opdracht gimp DSC_$1.tiff toe te voegen. Maar dat bleek geen goed idee, de tif’s zijn vaak iets te licht of te donker en hebben een correctie nodig.

Daarom heb ik een tweede functie gemaakt, waarmee de belichting snel is aan te passen. Ik roep die aan met dcb 0.8 1000, dat betekent: gebruik dcraw met de optie brightness die je verlaagt naar 0.8 (kleiner dan 1: donkerder, groter dan 1: lichter). Als volgt.

# functie om nef naar dcraw te sturen met brightness als extra variabele
dcb() {
echo “voorbeeld gebruik: dcb 0.8 1000”
echo “DSC_$2.NEF > 16-bit tiff via dcraw met optie -b(rightness) = $1”
dcraw -w -T -6 -b $1 DSC_$2.NEF
echo “klaar”
}

Aanroepen met dcb 0.8 1000. Let even op dat je 0.8 met een punt schrijft en geen komma gebruikt. Controleer in een fotobrowser of de densiteit van de tiff min of meer overeenkomt met de raw, zo niet, herhaal met een andere brightness-waarde.

PNG

Bij toeval kwam ik erachter dat de resulterende plaat iets fijner oogt als het standaard conversieformaat van dcraw wordt gebruikt – ppm – om die daarna naar een png te converteren. Daarvoor heb ik de functie dcp gemaakt (dcraw naar png), als volgt.

# converteer NEF naar ppm naar png en remove/verwijder de ppm
dcp() {
echo “NEF naar 16-bit png (via ppm)”
dcraw -w -6 DSC_$1.NEF
convert DSC_$1.ppm DSC_$1.png
rm DSC_$1.ppm
}

Aanroepen met dcp 1000. Nu zie je naast de raw het bestand DSC_1000.png verschijnen. Opmerking: het programmaatje convert dat hierboven wordt aangeroepen is onderdeel van de grafische open-source toverdoos ImageMagick.

Tot slot nog een met de brightness-variabele.

# NEF > ppm > png met variabele brightness
dcpb() {
echo “DSC_$2.NEF > ppm > png met brightness $1 ”
dcraw -w -6 -b $1 DSC_$2.NEF
convert DSC_$2.ppm DSC_$2.png
rm DSC_$2.ppm
}

Aanroepen met dcpb 0.6 1000.

Suggestie. Maak er een gewoonte van om na de conversie de 16-bit tiff’s en png’s meteen te wissen: dat zijn tijdelijke bestanden die niet meer nodig zijn maar wel flink veel ruimte in beslag nemen. Een 16-bit tiff van een 16mp raw-foto is al snel 90MB groot.

Paden en aliassen

Om te voorkomen dat je veel typewerk moet verrichten om bij je raw-mappen te komen, kun je aliassen aan .bashrc toevoegen. Een alias is een korte naam voor een langere opdracht. Ik heb mijn digitale foto’s vanaf mijn eerste digitale camera in 2000 – een Coolpix 990 – steevast als volgt geordend: hoofdmap fotoos, dan jaar dan maand, dus fotoos/2015/jun15. Daaronder eventueel nog submappen als dans of beeldjes. Mijn fotomap staat geparkeerd op een harde schijf die is aangekoppeld op /media/barra. De hele locatie ziet er bij mij als volgt uit.

/media/barra/fotoos/2015/jun15

Om te voorkomen dat we steeds dit pad moeten intypen, maak je een alias. Open .bashrc en typ onderaan het lijstje met aliassen zoiets:

alias jun=’cd /media/barra/fotoos/2015/jun15′

Bewaren, terminal afsluiten en weer opstarten (of typ ‘source .bashrc’ in de terminal om hetzelfde te bereiken, maar Alt+F4 en System+T is sneller).

Als je dit voor meerdere jaren plant, verander jun dan in jun15.

Nu kun je snel naar de map /media/barra/fotoos/2015/jun15 navigeren door alleen maar jun in te typen. Daarna doe je dc 1000 en hup, terminalgemak dient de mens!
________
pm|jun15

Advertenties