Zpracování fotografií v linuxu

autor - Pro.31, 2016 - Fotografování, Linux, Postupy

Na úvod bych snad chtěl jen podotknout, že žádný open-source program nedosahuje kvalit (z pohledu možností, ovládání, work-flow, atd.) komerčních aplikací jako např. Adobe PhotoShop, iView, DxO. To je celkem logický stav, nicméně ne každý potřebuje kanón na vrabce a navíc i přesto lze s mírně nižším pohodlím linux či unix plně používat pro zpracování fotografií na dobré kvalitativní úrovni.

Z pohledu technicky zaměřeného fotografa s cílem zachování co nejvíce „informací“ ve výsledném produktu považuji za nejdůležitější podporu vyšší barevné bitové hloubky (16 bit pro každý kanál) a správu barev. Nicméně pro 99 % mých fotografií je taková preciznost prakticky zbytečná – jsou tak jako tak prezentovány na displejích a tam stále ještě převládá 8bitové rozlišení v sRGB prostoru.)

Níže je ucelený souhrn programů, které používám pro různé části pracovního postupu při zpracování fotografií.

Nejprve trochu úkrok stranou  – celý pracovní postup je podřízen následujícím zásadám:

  • Raw soubory zůstávají nedotčené;
  • Soubory (snímky) obsahují v názvu datum a čas pořízení, dle lokální časové zóny (nutno nastavit ve fotoaparátu);
  • Archiv fotografií je primárně tvořen hierarchií složek souborového systému:
    /2008-09/
       novy-zeland/
          raw/
             20080927-155520.cr2
             20080927-155520.cr2.xmp
             20080927-155913.cr2
             20080927-155913.cr2.xmp
          20080927-155520.jpg
          20080927-155520final.jpg
          20080927-155520test.jpg
          20080927-155913.jpg
  • Metadata (popisky, klíčová slova) se ukládají přímo do JPEG souborů, nikdy nepřidávám metadata k raw souborům (ani jejich postraních souborů XMP);
  • Jako primární technologii pro ukládání metadat preferuji XMP, nicméně pro účely alespoň částečné kompatibility nadále používám synchronizaci s IPTC.

Transfer snímků na pevný disk

Obvykle používám USB mass storage čtečku – rozhraní fotoaparátu bývají pomalejší a zbytečně vybíjí baterku. Soubory (ať už raw či JPEG) nakopíruji do příslušné složky (2008-09/novy_zeland) pomocí nástroje pro import v digiKamu – soubory se automaticky přejmenují dle masky

[date:yyyyMMdd-hhmmss]{unique:3}.[ext]{lower}

Pokud jsem fotil pouze do raw a chci ještě za dobré paměti vytvářet metadata pro snímky, vygeneruji JPEGy dávkově pomocí darktable – obvykle bez jakýchkoliv úprav, maximálně promažu evidentně mizerné fotky (v darktable používám značku „odmítnout“ pomocí klávesy „r“ a raw soubory odstraním hromadně). Fotky mohu dále odstraňovat i v digiKamu či správci souborů, o následné „odstranění“ nepotřebných raw souborů se postará skript uvedený v části „Práce s verzemi souborů“.

Metadata

Způsob ukládání metadat (čili popisných dat o snímcích) je strategické rozhodnutí. Vždy preferuji ukládání všech důležitých metadat přímo do souboru se snímkem, nikoliv pouze do samostatné databáze či do postranních souborů XMP. Z důvodu přenositelnosti to znamená používat pro metadata buď JPEG či PNG. (Podpora zápisu do raw souborů je neúplná a konvertovat proprietární raw do DNG od Adobe nepovažuji za rozumnou variantu.)

Horší je to s interoperabilitou (tj. možností spolupracovat mezi různými aplikacemi), problémy činí především různý způsob zápisu nadřazených a podřazených klíčových slov. digiKam nabízí podporu pro některé MS Windows aplikace, nemaje tento operační systém, toto nevyužiji. Nicméně při možné budoucí změně by neměl být problém provést konverzi pomocího vlastního skriptu (s exiv2 či exiftool).

Formáty pro ukládání metadat jsou následující:

  • EXIF s víceméně statickými údaji (z fotoaparátu) a možností uživatelského komentáře;
  • IPTC s normovanou strukturou údajů (název, popis, klíčová slova, autorská práva, lokace, atd.);
  • XMP s volnou strukturou, kterou vytváří každá aplikace dle svých potřeb.

Dnes je jednoznačně preferováno XMP – text je kódován dle UTF-8, není omezen předem danou strukturou. Nevýhodou je, že každý program vytváří vlastní strukturu.

V současné době používám pro správu metadat digiKam, dříve jsem používal MaPiVi, které mělo naprosto bezkonkurenční způsob práce s klíčovými slovy, ale v dnešní době je již příliš omezené a zastaralé svou koncepcí.

Stará metadata vložená programem MaPiVi se celkem bez problémů podařilo přetransformovat do struktury klíčových slov používaných v digiKamu, pouze jsem zatím „nepřevedl“ geolokační údaje v textové podobě (používal jsem IPTC stát, region, město, lokalita). Je to jen otázka motivace, neb v digiKamu existuje modul pro přiřazování GPS souřadnic pomocí např. Google Maps – takže ruční práce. (Pokud už nenajdu konkrétní místo, lze nastavit i „přesnost“ souřadnic.)

digiKam ukládá metadata do vlastní struktury ve formátu XMP a nabízí základní synchronizaci s EXIF, IPTC, Dublin Core XMP, Adobe Lightroom XMP, atd. Údaje drží ve vlastní databázi a současně je zapisuje do souborů s fotkami. (Podpora práce s IPTC je nicméně dost slabá: převod nabodeníček na čisté ASCII je chybný, editovat lze jen snímek po snímku, vyhledávat nelze – naštěstí to lze vyřešit převodem do XMP a na IPTC zapomenout…)

digiKam se zaměřuje především na práci se klíčovými slovy (štítky) a popisky – pomocí drag&drop lze velmi jednoduše přesouvat štítky v hiearchické struktuře i přiřazovat snímkům. Snímky lze dobře prohledávat (časová osa, kombinace filtrů štítků, dle struktury adresářů, atd.). Podporuje též jazykové varianty (tj. např. popisek v angličtině a zvlášť popisek v češtině).

V digiKamu používám následující strukturu (preferuji angličtinu):

category/
  různá obecná slova (animal, house, car, tree, insect...) dále hiearchicky řazená
family/
  jména lidí ve struktuře dle příjmení v "mužském" rodě
friends/
  jména lidí
pets/
  jména zvířecích miláčků
event/
  název události (Wedding day of Marry Ann)
location/
  štítky doplněné modulem GEO lokace (reverze geo-coding)
presentation/
  www - určeno pro publikaci na webu
  family - určeno pro prezentaci v rodinném kruhu
  short - krátký výběr pro netrpělivé diváky
  long - spousty obrázků pro ty ostatní
photo-style/
  portrait
  landscape
  close-up
  ...
various/
  co se jinam nevešlo

Klíčová slova „vrcholové“ úrovně nepřiřazuji žádným fotografiím. Pod vrcholovou úrovní vytvářím další strukturu dle potřeby.

Jazykové varianty pro „komentáře“ využívám pro další účely. Jazyková varianta „x-default“ je pro popisek z pohledu katalogizace fotografie (tj. veškeré popisné detaily, opět v angličtině), zatímco exotický jazyk „af-ZA“ používám pro popisek v češtině, který může být publikován na internetu či domácím serveru.

Skript uvedený v části Prezentace (níže) se postará o smazání ostatních metadat u fotografií určených pro prezentaci.

Editace

Největší úskalí je opakovaná ztrátová komprese JPEG snímků při ukládání po editaci a ztráta či poškození metadat editorem.

  • darktable se tváří jako obdoba fotokomory a prohlížecího stolku na diáky, čemuž odpovídá i použitá terminologie (ach ta nostalgie). Ale je fantasticky dobrý a rychlý na používání. Stále se vyvíjí, nicméně už nyní plní vše, co od něj čekám.
  • digiKam používá vlastní editor Showfoto a zachovává všechna metadata;
  • GIMP je netřeba představovat, počítejte s tím, že ve verzi 2.8 stále nepodporuje více jak 8 bitovou barevnou hloubku na kanál ani rozumnou editaci v barvovém prostoru LAB (což vzhledem k 8bitové hloubce stejně nemá smysl). Pro práci v CMYK existují obezličky, ale není to úlně ono…;
  • CinePaint je linuxovou klasikou pro vážnější fotografy, bohužel je to více méně „one man show“ a dnes je to prakticky mrtvý projekt. Přesto je pro některé aplikace stále nenahraditelný (16 i 32 bitová hloubka, tvorba i editace HDR, převody do CMYK a jeho tisk, editace v LAB, zobrazení barvového prostoru pomocí rozšíření ICC Examin);
  • Krita by měla umět téměř totéž co CinePaint, ale zaměřuje se spíše na „malování“ než editaci fotografií – zatím jsem se s ní nesžil.
  • ImageMagick je suita programů pro příkazovou řádku pro práci s bitmapovými obrázky. Nenahraditelná věc pro skriptování a hromadné operace.
  • Exiv2 je knihovna  a program pro příkazový řádek pro práci s metadaty. Opět vhodné pro skriptování. Obdobně exiftool.

Práce s verzemi souborů

digiKam a showFoto umožňuje pracovat s verzemi souborů (soubor s novou verzí má přidáno před příponu _v1, _v2, atd.), přičemž ty staré verze volitelně „skrývá“.

darktable nikdy při exportu nepřepisuje existující snímky, ale přejmenuje je na _01, _02, atd.

Pokud vyfotografuji několik snímku za vteřinu, pak jsou při importu pojmenovány jako _001, _002, atd.

Následující skript řeší:

  • přejmenování nověji vyexportovaných snímků JPEG z darktable, přičem jsou zachována metadata starší verze (jsou vložena do této nové verze).
  • přesun raw snímků do samostatného adresáře, pokud k nim neexistuje JPEG snímek v nadřazeném adresáři se shodným základem jména (datum-čas)
  • zpracovává se vždy celý adresář, skript lze spustit přímo z digiKamu pomocí „Otevřít s…“ např. na JPEG či raw souboru.

#!/bin/bash

# Copyright 2011-2012 Milan Knizek, knizek@volny.cz
# Licence GPL v.3
# Goes through working or ./raw directory (with raw images) and try to find
# a corresponding image with pattern "basename*" in its parent folder.
# If not found, move the raw file to a separate folder for later manual removal.

rawmask="*.cr2 *.CR2 *.crw *.CRW *.rw2 *.RW2"
xmpmask="*.xmp *.XMP"
unuseddir="../unused-raw"

# Renames re-exported JPEGs and preserve the old metadata
  # Do not forget to number burst shots with "_###" digits to avoid collision
  # with images exported from darktable
newjpegmask="*_[0-9][0-9].jpg"

if [[ ! "${1}x" == "x" ]]; then
  pardir=`dirname "${1}"`
  [[ -d "${pardir}" ]] && cd  "${pardir}"
  echo pardir: $pardir
fi

workdir=`pwd`
workdir=`basename $PWD`

if [[ ! "${workdir}" == "raw" ]]; then
  echo "Script is not run in a ./raw directory. Will try to descend, if ./raw exists..."
  [[ -d "raw" ]] && cd raw || { echo "Nope, descending failed."; exit 1; }
fi
  
echo ""
mkdir -p "${unuseddir}"

# List available raw files
for i in ${rawmask}; do
    if [ ! -f "${i}" ]; then continue; fi
    echo "Looking for counterparts of ${i}..."
    basenm="${i%.*}"
    # List available candidates in parent directory
    for j in ../${basenm}*; do
        # Skip on first success
        if [ -f "${j}" ]; then
            echo "   Found ${j}. Skipping to the next raw file."
            break
        else
            echo "   No candidate found, moving raw file to ../unused-raw"
            mv "${i}" "${unuseddir}/${i}"
            break
        fi
    done
done
echo "Done cleaning of unused raw files in $(pwd)."
echo ""


# Look for orphaned xmp files (w/o raw file) and move them.
for i in ${xmpmask}; do
    if [ ! -f "${i}" ]; then continue; fi
    echo "Looking for counterparts of ${i}..."
    basenm="${i%.*}"
    if [ -f "${basenm}" ]; then
        echo "   Found ${basenm}. Skipping to the next xmp file."
    else
        echo "   No candidate found, moving xmp file to ../unused-raw"
        mv "${i}" "${unuseddir}/${i}"
    fi
done
echo "Done cleaning of unused xmp files in $(pwd)."
echo ""



# Look for newer version of jpeg in parent directory and replace
# the old one with it while retaining the metadata
workdir=`pwd`
cd ..
for i in ${newjpegmask}; do
    if [ ! -f "${i}" ]; then continue; fi
    echo "Looking for older version of ${i}..."
    basenm="${i%_*}"
    oldjpeg="${basenm}.jpg"
    if [ -f "${oldjpeg}" ]; then
        echo "   Old version found, replacing: ${oldjpeg}"
        exiv2 extract "${oldjpeg}"
        mv "${i}" "${oldjpeg}"
        exiv2 insert "${oldjpeg}"
        rm "${basenm}.exv"
    fi
done
echo "Done substituting old version with new JPEG files in parent of ${workdir}."
cd "${workdir}"

[[ "$(ls -A ${unuseddir})" ]] || rm -r "${unuseddir}"

exit 0

Tisk

V linuxu zajišťuje tisk obvykle tiskový server CUPS (ten bývá součástí instalace většiny distribucí) a ovladače pro Epson a Canon tiskárny nabízí Gutenprint. Z pohledu podpory jsou na tom velmi dobře i tiskárny HP.

Gutenprint podporuje 8 i 16 bitovou barevnou hloubku na kanál, tisk v RGB i CMYK režimu. Bohužel trochu pokulhává v možnostech kalibrace tiskárny (ink limits, křivka) – ovlivnit tyto paramtry sice lze, ale bez znalosti výchozích hodnot a navázání na změřené hodnoty kalibrační sondou to není úplně ono…

Tisknout fotografie lze libovolným programem (pak obvykle konverzi pro tiskárnu zařídí tiskový server) nebo některé grafické editory (GIMP, CinePaint) přímo obsahují tiskové rozšíření s možností individuálního nastavení tiskového ovladače (tj. vytvoření virtuálních tiskáren). Tiskový server v takovém případě data pouze přeposílá přímo na tiskárnu v „surovém“ formátu.

Doporučuji k vyzkoušení PhotoPrint, což je aplikace pro tisk se správou barev a možností nastavení rozložení na stránce – tiskový dialog je přímo Gutenprint, tj. shodný s GIMPem či CinePaintem. Tisknout samozřejmě můžete i z editorů, tam ale budete muset obrázek před tiskem ručně konvertovat do barvového prostoru tiskárny. PhotoPrint toto učiní automaticky (digiKam, GIMP a spol. umí softproof, ale při tisku data nekonvertují do profilu tiskárny).

Pozn.: Trochu otravné je, že tisková nastavení vytvořená a uložená v GIMPu nelze přímo použít v CinePaintu či PhotoPrintu – je nutno je vytvořit samostatně. V CUPSu lze též vytvářet „virtuální“ tiskárny k téže fyzické (tzv. instance) s různými nastaveními, při tisku přímo přes Gutenprint tiskový dialog jsou ovšem k ničemu. Schyluje se snad k lepším časům, neb CUPS by mohl konverzi mezi barvovými prostory podporovat přímo (viz diskuze na OpenICC mailing listu i v souvislosti s colord), takže by šlo vytvořit virtuální tiskárny přímo v tiskovém serveru a ty pak používat z jakékoliv aplikace. Bohužel se to poněkud vleče…

Prezentace na WWW

Pro publikaci na internetu odstraňuji většinu metadat – kvůli ochraně soukromí (popisky obsahují i údaje, které považuji za soukromé).

Skript provede pár základních operací: zmenší obrázek na 800×600 bodů, zkonvertuje jej do sRGB prostoru, odstraní všechna metadata kromě expozičních údajů, popisu (v digiKamu jej ukládám pod jazykovým kódem „af_AZ“) a vybraných klíčových slov (ve struktuře digiKamu jsou to category/, photo-style/, various/), a přidá malé logo s copyrightem.

Skript je pravděpodobně velmi neefektivní, ale lepší zatím nezvládnu:

#!/bin/bash
# Licence: free for unlimited use, modification and distribution
# Copyright 2009 Milan Knizek, http://www.milan-knizek.net/

# Script for modification of images for web publishing
# Metadata:
#   Exif.Image.Artist
#   Exif.Image.Copyright
#   Exif.Image.Model
#   Exif.Photo ... exposure data as per camera
#   Xmp.dc.description ... only lang="af-ZA" converted to "cs_CZ"
#   Xmp.digiKam.TagsList ... only category/, photo-style/, various/ hierarchies
#
# Resolution:
#   800x600 for any given orientation.
#
# Copyright logo:
#   Fill in visible copyright text to bottom right "(c) 2009 Milan Knizek"

# Few definitions
## Which year, font and text for logo?
year="" # If not set, then it is taken from Exif.Image.DateTime or file time stamp.
font="/usr/share/fonts/truetype/msttcorefonts/Arial_Bold.ttf"

## Which tags can be published? (Apart from keywords and comments.)
tags1="Exif.Photo.ExifVersion Exif.Photo.FocalLength \
 Exif.Image.Model Exif.Photo.ExposureTime Exif.Photo.FNumber Exif.Photo.ISOSpeedRatings \
 Exif.Photo.DateTimeOriginal Exif.Photo.DateTime Exif.Photo.ExposureBiasValue \
 Exif.Photo.MeteringMode Exif.GPSInfo. \
 Iptc.Application2.Copyright Iptc.Application2.Byline"

## What is the required output resolution and JPEG quality?
size="800x600"
quality="87"

# Let's go!
inputlist="${@}"

if [ "${inputlist}x" == "x" ]; then
 echo "Program usage: ${0} image1.jpg | image2.jpg | ..."
 exit 1
fi

# Here is the main part, which is called for each input file
MainS()
{

input="${1}"

if [ ! -f "${input}" ]; then
 echo "File \"${input}\" does not exist! Skipping..."
 echo "Note that the image file names cannot include spaces!"
 return 1
fi

echo "Processing image \"${input}\"..."

# Make sure the temporary files are not laying out there...
rm -rf "${input}".tmp*

# Autorotate JPEGs and update EXIF correspondigly
jhead -autorot "${input}"

# Export metadata to a temporary file
exiv2 -PIXEykv "${input}" >  "${input}.tmp"

# Create copyright logo
if [ "${year}x" == "x" ]; then
 year=`cat "${input}.tmp" | grep -a "Exif.Image.DateTime" | \
 sed -e 's/.*Ascii      //' -e 's/\:.*//'`
fi

if [ "${year}x" == "x" ]; then
 year=`stat -c %y ${input} | sed 's/-.*//'
fi

label="Copyright © ${year} Milan Knížek"
logo="logo-${year}.png"

if [ ! -f ${logo} ] ; then
 convert -background LightGrey -fill Black -font "${font}" \
 -pointsize 14 -antialias label:"${label}" "${logo}".a.png
 convert "${logo}".a.png \
 \( +clone  -threshold -1 \
 -draw 'fill black polygon 0,0 0,2 2,0 fill white circle 2,2 2,0' \
 \( +clone -flip \) -compose Multiply -composite \
 \( +clone -flop \) -compose Multiply -composite \
 \) +matte -compose CopyOpacity -composite "${logo}".b.png
 convert "${logo}".b.png -bordercolor "rgba(0,0,0,0)"  -border 5  "${logo}"
fi

# Prepare a file with metadata for publishing
## EXIF and IPTC
for i in ${tags1}; do # tags must not be quoted!!
 cat "${input}.tmp" | grep -a "${i}" | sed 's/^/set /' >> "${input}.tmp.sel1"
done

## XMP caption: Strip all but af-ZA lang variant
cat "${input}.tmp" | grep -a Xmp.dc.description | \
 sed -e 's/Xmp.dc.description                           LangAlt    //' \
 -e 's/.*lang=\"af-ZA\" //' \
 -e 's/, lang=\".*//' \
 -e 's/^/set Xmp.dc.description                           LangAlt    lang="cs-CZ" /' > "${input}.tmp.sel2"

## XMP keywords: Strip all but category, photo-style, various
### Replace spaces in keyword names with XxXxX
cat "${input}.tmp" | grep -a Xmp.digiKam.TagsList | \
 sed -e 's/Xmp.digiKam.TagsList                         XmpSeq     //' \
 -e 's/ /XxXxX/g' \
 -e 's/,XxXxX/ /g' > "${input}.tmp.sel3a"

### Replace top level keyword and split by each sublevel
for i in `cat "${input}.tmp.sel3a"` ; do
 echo $i | grep category\/ | sed -e 's/^category\///' -e 's/\//\n/g' >> "${input}.tmp.sel3b"
 echo $i | grep photo-style\/ | sed -e 's/^photo-style\///' -e 's/\//\n/g' >> "${input}.tmp.sel3b"
 echo $i | grep various\/ | sed -e 's/^various\///' -e 's/\//\n/g' >> "${input}.tmp.sel3b"
done

### Get rid of redundant tags and create exiv2 M commands
cat "${input}.tmp.sel3b" | sort --unique | \
 sed -e 's/XxXxX/ /g' \
 -e 's/^/set Xmp.dc.subject     XmpBag     /' >> "${input}.tmp.sel3"

## Merge the exiv2 M commands together
cat "${input}.tmp.sel1" "${input}.tmp.sel2" "${input}.tmp.sel3" > "${input}.tmp.sel"

# Resize, convert to sRGB, add copyright
icc="/usr/share/color/icc/sRGB.icm" # target profile

mogrify -size ${size} -resize ${size} -intent Perceptual -profile "${icc}" -strip "${input}"
composite -gravity southeast -dissolve 45% "${logo}" "${input}" -interlace Plane "${input}"

# Restore selected metadata
exiv2 -m "${input}.tmp.sel" mo "${1}"

# Clean the temporary files
rm -rf "${input}".tmp* "${logo}"*

return 0

}

for i in ${inputlist}; do
 MainS ${i}
done

exit 0

Archivace

„Zálohování je zbytečné jen do doby, kdy přijdete o data.“

Žádné komplikované záležitosti, snímky udržuji na několika datových nosičích (k synchronizaci používám rsync a snapshoty souborového systému ZFS):

  • 1 TB hardisk v počítači – kompletní archiv včetně snapshotů ZFS (vždy čtyři poslední historické snímky pro každých 15 minut, 1 hodinu, 1 den, 1 týden a 1 měsíc), pracovní verze;
  • záložní harddisk v trezorové skříni – kopie pracovního harddisku cca každé tři měsíce;
  • záložní harddisk v jiné budově.

Ideální by byla archivace i na jiný než magnetický typ média, ale blue-ray mechaniku zatím nemám a ani neplánuji, nicméně vzhledem ke klesajícím cenám zvažuji alespoň částečnou zálohu JPEGů na flash discích (např. v poolu vytvořeném ZFS).

Kromě toho „archivuji“ i na svých webových stránkách.

Specializované programy

Jak jinak, většina je z kategorie open-source.

  • hugin je grafické uživatelské rozhraní k řadě programů pro tvorbu panoramat, rovnání svislic, atd. Podporuje 16b RGB:
    • autopano-SIFT vytváří automaticky kontrolní body (určují překrývající se místa sousedních snímků). Pokud máte uložen profil objektivu v ini souboru, je často lepší nastavit kontrolní body ručně (2 – 3 pro každý pár snímků). Autopano-SIFT podporuje pouze 8bit RGB snímky;
    • fulla – program umožňující opravit optické vady objektivu (zkreslení, vinětaci, chromatickou vadu);
    • Panorama Tools je projekt založený na práci Helmuta Dersche, nyní poskytuje především knihovnu libpano12 a následnickou libpano13, která slouží k nastavení parametrů snímků před jejich spojováním v panorama;
    • nona – program pro úpravu vstupních snímků do pozice v budoucím panorama (+ případná změna geometrického zobrazení). (Obdoba PTSticher z PanoTools.) Nona může snímky i přímo spojit, je však lépe použít enblend;
    • enblend umožnuje kvalitní („bezešvé“) prolínání jednotlivých snímků – snímky již musí mít svoji pozici v budoucím panorama – viz nona. Obsahuje též program enfuse, čili exposure fusion – prolínání expozic (tj. alternativu k HDR a algoritmům mapování tónů na LDR);
  • PanoTools::Script obsahuje např. erect2cubic  (download aktuální verze: svn co https://svn.sourceforge.net/svnroot/panotools/trunk/Panotools-Script) pro konverzi 360° panorama z equirectangulární projekce do kubické (výstupem je šest snímků použitelných pro skript jpeg2qtvr).
  • jpeg2qtvr je skript na konverzi šesti snímků tvořících kubické panorama do QTVR formátu MOV.
  • freePV je prohlížeč kubického panorama (QTVR) ve formátu MOV (Apple QuickTime).
  • Pannellum je prohlížeč ekvirektangulárních a kubických panoramat pro webové prezentace (HTML 5, WebGL).
  • Balík PFStools obsahuje několik programů pro příkazovou žádku pro práci s HDR snímky (vytvoření HDR snímků z běžného LDR snímku, manipulace, zobrazení, konverze do různých formátů). Na pfstools navazuje sada programů pro tone-mapping (sofistikovaná konverze HDR snímku na LDR snímky) zvaná pfstmo.
  • HDR from bracketed exposures je plugin CinePaintu pro vytváření HDR snímků z expozičních variant LDR snímků.
  • LPROF je ICC profiler čili program pro vytváření ICC profilů pro správu barev.
  • Argyll CMS je obdoba projektu LPROF, obsahuje kromě jiné utilitu dispwin, která umožňuje kalibraci více monitorů připojených k X Window v linuxu. Na Argyll CMS je založen např. dispcalGUI, GNOME Color Manager, KDE Kolor Manager.
  • PhotoRes/TestDisk – PhotoRes obnovuje smazané soubory z disků či paměťových karet. Pokud byl poškozen souborový systém, o obnovu se můžete pokusit s programem TestDisk.

Kniha přání a stížností 😉

digiKam:

  • Nejednotné uživatelské rozhraní: některé úpravy v showFoto lze provádět v náhledu obrázku (úprava perspektivy), jiné pouze „táhly“ v bočním panelu (zkosení).
  • Podivná přeplácanost (vlastní celému prostředí KDE).
  • Nelze nastavit „ponechat snímek v jeho barvovém prostoru“ jako výchozí chování, takže showFoto se při otevření fotky stále ptá a ptá. Jedna z nabízených odpovědí je „nevím“, což neřekne zhola nic o tom, co se stane.
  • Umožnit off-line práci a následnou synchronizaci – např. bych rád popsal nové fotografie na cestách a po návratu je pouze naimportoval do centrálního úložiště. Zatím to řeším tak, že před odjezdem zkopíruji db digiKamu na notebook (abych měl všechny štítky k dispozici) a po návratu fotky ručně nahraji do příslušného adresáře – digiKam sám přidá „vložená“ metadata do své databáze.
  • Detekce obličejů víceméně funguje, ale rozpoznávání lidí stále nikoliv. Což je škoda, neb by to hodně zjednodušilo popisování fotografií…

darktable:

  • Vývojáři jsou poněkud „sví“, někdo by řekl arogantní. Zatím to nejvíce odnáší špatně navržená práce s raw soubory, neb se předpokládá, že se nehnou z místa ani nepřejmenují, a přitom současně se uživatelům doporučuje pro tyto účely používat jiné nástroje (viz FAQ, druhý, třetí a čtvrtý bod).  Takže nezbývá než ručně vyprázdnit databázi a zase naimportovat snímky (díky souborům XMP se neztratí úpravy raw souborů, ale soubor s databází „library.db“ raději nemažte ručně, nebo přijdete např. o vlastní styly, atd.). Zaplať kterýkoliv z Bohů za to, že alespoň lze otevřít raw soubory v darktable přímo např. z digiKamu (Otevřít s …) a celou koncepci „filmových svitků“ v darktable ignorovat. I tak po pravdě nechápu, kdo je schopen používat darktable pro udržování archivu (tj. jako ekvivalent digiKamu).
  • Chybí tlačítko „Zpět“. (To není totéž, jako postoupit krok zpět v „historii“. Zkuste si třeba omylem hýbnout křivkou úpravy jasu.)
  • Těžko říci, proč je „orientace“ snímku samostatný modul namísto včlenění do „oříznout a otočit“, proč není změna orientace k dispozici již při prohlížení náhledů v režimu prohlížecího stolku. Ale to jsou v zásadě drobnosti…
:, , , , ,

Komentáře: 7

  • bluemoon

    musim se ohradit na par veci. s gimpem v cmyku jde pracovat, jenomze cmyk kvuli absenci syte cervene barvy je nevhodny pro fotografii a hodi se spise pro obalky casopisu, takze bud sRGB nebo aRGB prostor je vhodny pro fotografii, widegamut se moc nepouziva. obrazek se ulozi do svg, otevre ve scribusu a exportuje do CMYK PDF pro tisk.
    8bitu na kanal pro gimp neni moc velke omezeni, pokud se vrstvi zpracovane fotografie a nedelaji se ukony, ktere by vedli k posterizaci, coz u fotografie si udelate jako prvni v digikamu nebo v ufraw, ktery s takovou barevnou hloubkou pracuji.
    za dalsi sprava barev v Digikamu-Showfoto je daleko lepsi nez u jinych programu jako ufraw, rawstudio atd. aplikovani jineho profilu je zde reseno primo za chodu a obnoveni tisice fotek nic netrva. pri uprave je zde moznost ponechat stav, priradit profil nebo ho zkonvertovat. raw se pak uklada jako tiff s vlozenym jinym profilem a nasledne se muze exportovat do jpeg. navic Digikam pracuje i s jinou interpolaci nez RGBG. Digikam umi dobre pracovat s gps a zobrazuje je na mape Marble, umi take ulozit IPTC informace a importovat je do EXIF na hromadne se daji aplikovat skripta. Neni ale lepsi spravce fotografii ani z tech komercnich.

  • Milan Knížek

    @bluemoon: díky za komentáře, vesměs pravdu díte, byť lecos je otázka názoru (a zvyku).

    Mimochodem, UFRaw má plnou správu barev a na rozdíl od digiKamu umí uložit i konfiguraci pro každý RAW soubor zvlášť, umí aplikovat korekci expozice, křivku a gamma s úpravou linearity ve spodní části ještě na lineární RGB data.

    U GIMPu myslíte plugin Separate? Ten jsem opravdu přehlédnul. Nicméně stále nelze CMYK obrázek otevřít ani přímo tisknout. Nebo se pletu? Ale chápu, že to je okrajová záležitost.

    S digiKamem jsem „bohužel“ začal u verze 0.1.0, kterážto má správu barev totálně rozbitou a v synchronizaci tagů mraky ošklivých chyb (alespoň ta verze v Ubuntu repozitářích). Současná 1.0.0-beta4 má už správu barev takřka v pořádku, především díky Marcelu Wieswegovi.

    Až vyjde verze 1.0.0, určitě se mé workflow zjednodušší, pak opravím i článek.

    Můj wishlist pro digiKam je:

    1. možnost exportovat část kolekce na přenosný disk, editovat jinde a vrátit zase zpět do centrální databáze,
    2. dořešení hromadné editace a inteligentní aktualizace IPTC location,
    3. odstranění bugu ohledně špatně „přeložených“ českých znaků do IPTC,
    4. doplnění vteřinového offsetu mezi foťákem a GPS přístrojem do GPS pluginu,
    5. práce i se snímky, které jsou na „off-line“ disku,
    6. bezztrátový ořez JPEG snímků,
    7. export vybraných obrázku do samostatného adresáře s nastavenými parametry „promazání“ metadat + konverze velikosti + konverze do příslušného icc profilu,
    8. tisk přímo z prohlížeče, ne až z editoru; náhled před tiskem (soft-proof a možnost nastavit velikost a pozici na stránce myší); tisk více obrázků najednou na stránce.
    9. úprava barev křivkami je prováděna pouze v RGB prostoru bez možnosti volby (např. v LAB).

    Hm, řekl bych, že ke profesionálnímu sw to má ještě dost daleko…

  • Milan Knížek

    Dostal jsem se konečně k aktualizaci článku, z mého wishlistu ubyla zmínka o GPS correlatoru – digiKam (resp. kipi-plugins) již umí nastavit offset i ve vteřinách.

    Navíc doplňuji seznam přání o možnost automaticky zapisovat EXIV/IPTC/XML do samostatného souboru pro všechny obrázky, které nejsou podporovány pro zápis metadat (tj. především raw). Tento soubor by měl být automaticky načten při obnovení metadat.

  • HB

    Pane Knížku,

    do výčtu programů pro Linux Vám chybí program RawTherapee který je volně ke stažení. Poslední stabilní verze 2.4.1 . ( http://www.rawtherapee.com )
    Umí kromě převodu RAW souboru Vámi požadovaný LAB,
    načte i 16-bit TIFF a jpg. Lze též ukládat profily zpracování. Poslouží pak i místo Cinepaintu (.xcf a vrstvy a retuš ale neumí).
    Může otevřít výsledně zkonvertovaný RAW např. prímo v GIMP-u.

  • Ked

    No, každý máme nějaký styl práce, kombinace UFRaw-Gimp je zdlouhavá, proto na rawy používám dlouho RawTherapee. Sice je stabilita verze 2.4.1 tatam, zato GPL potěšila. Zkoušel jsem i Bibble5, ale s RT jsou stejně, přes protrápení současnými bugy alfaverze, výsledky lepší.

  • VM

    Darktable nepoužívám, ale v tomto se ho musím zastat: „… proč změna orientace …. je v absolutních hodnotách a ještě k tomu s obrácenou logikou (-90 ° je _po směru_ otáčení hodinových ručiček…)“. Myslím, že autoři vycházejí z konvence standardně používané v matematice tj. kladná orientace úhlu je proti smyslu otáčení hodinových ručiček.
    Jinak dík za tento web. Spousta zajímavých a užitečných věcí.

  • Milan Knížek

    @VM: což o to, použití znaménkové konvence vycházející z matematiky chápu, ale to bohužel neznamená, že je to logické z pohledu očekávání uživatele (s ohledem na zkušenost z jiných programů).
    Obdobně např. hugin interně čísluje fotky od _nuly_, zatímco lidé bez matfyzu či programátorské zkušenosti obvykle počítají od jedničky.
    Dá se s tím pochopitelně žít, zvláště linuxáci na takové „detaily“ nehledí, neb nejsou tak zhýčkáni jako uživatelé jiných systémů 😉

1 Trackback or Pingback for this entry

Zanechte komentář

Archiv