Introducción
En el artículo «Las mejoras de Shotwell 0.14«, escribía sobre los diferentes cambios introducidos en la última versión y hacía referencia a la mejora en la gestión y soporte de imágenes RAW. Al escribir sobre ello, recordé un artículo anterior sobre «Imágenes RAW en Ubuntu muy sencillito«, en el que explicaba como poder ver miniaturas (thumbnails) en Nautilus, en la versión 11.04 (Natty Narwhal) de Ubuntu.
Dado que estoy trabajando con la última versión de Ubuntu, Raring Ringtail, no lo tenía todavía instalado, y pensé en instalarlo. Sin embargo, al leer en referencia a la aplicación que se utilizaba para realizar las miniaturas (gnome-raw-thumbnailer), parece ser que ha dejado de ser mantenido por sus desarrolladores, y he estado buscando soluciones alternativas, lo que me ha llevado a un par de soluciones bastante interesantes, ambas basadas en UFRaw, y que seguro que a mas de uno le resultarán de mucha utilidad.
UFRaw
Como no puede ser de otra forma,
Unidentified Flying Raw (UFRaw) es una utilidad que permite leer y manipular imágenes en bruto (RAW) de cámaras digitales. Se puede emplear como herramienta independiente, o bien, como complemento de Gimp. Para leer las imágenes en bruto utiliza la herramienta de conversión desarrollada por Dave Coffin DCRaw. UFRaw soporta la gestión de colores basado en Little CMS, y permitiendo al usuario aplicar perfiles de color ICC. Para usuarios de Nikon, UFRaw tiene la ventaja de que puede leer las curvas de tonalidad de la cámara. Con independencia de que tengas una cámara Nikon, tambien puedes aplicar una curva Nikon a tu propia imagen.
Utilizando UFRaw para generar Miniaturas (Thumbnails)
Llegados a este punto el siguiente paso es explicar como puedes utilizar esta aplicación para generar miniaturas. Lo primero, evidentemente es instalar la aplicación. Esto es tan sencillo como hacer clic en el siguiente enlace UFRaw. O bien, desde el terminal:
sudo apt-get install ufraw
El siguiente paso, es crear el archivo «/usr/share/thumbnailers/raw.thumbnailer», con el siguiente contenido:
[Thumbnailer Entry] Exec=/usr/bin/ufraw-batch --embedded-image --out-type=png --size=%s %u --overwrite --silent --output=%o MimeType=image/x-3fr;image/x-adobe-dng;image/x-arw;image/x-bay;image/x-canon-cr2;image/x-canon-crw;image/x-cap;image/x-cr2;image/x-crw;image/x-dcr;image/x-dcraw;image/x-dcs;image/x-dng;image/x-drf;image/x-eip;image/x-erf;image/x-fff;image/x-fuji-raf;image/x-iiq;image/x-k25;image/x-kdc;image/x-mef;image/x-minolta-mrw;image/x-mos;image/x-mrw;image/x-nef;image/x-nikon-nef;image/x-nrw;image/x-olympus-orf;image/x-orf;image/x-panasonic-raw;image/x-pef;image/x-pentax-pef;image/x-ptx;image/x-pxn;image/x-r3d;image/x-raf;image/x-raw;image/x-rw2;image/x-rwl;image/x-rwz;image/x-sigma-x3f;image/x-sony-arw;image/x-sony-sr2;image/x-sony-srf;image/x-sr2;image/x-srf;image/x-x3f;
Con esto ya tienes solucionado el asunto.
Utilizando Shotwell para no duplicar
Una alternativa bastante interesante es utilizar las miniaturas generadas por Shotwell, para reducir el espacio ocupado en tu disco. Esta solución, es interesante siempre y cuando las imágenes se importen en el mismo directorio. Es decir, cuando importas imágenes a Shotwell tienes que seleccionar la siguiente opción cuando te pregunte:
Esto es así, puesto que el script que paso a comentar a continuación, lo que hace es buscar en la base de datos generada por Shotwell el archivo en cuestión (en su ubicación original), de forma que si lo encuentra genera un enlace simbólico a la miniatura generada por Shotwell, y en caso contrario, genera su propia miniatura. Si no empleas Shotwell, lo mas sencillo, es que utilices la herramienta anterior.
El script a utilizar para buscar archivos de Shotwell y hacer el enlace simbólico, se basa en un script original de Anton Keks, pero donde se actualiza la ubicación de las miniaturas tanto de Shotwell como de las generadas para Nautilus, así como tiene en consideración la posibilidad de que la imagen sea en formato , jpg,png o tif.
Para utilizar el script, tienes que crear el archivo «/usr/bin/shotwell-raw-thumbnailer» con el siguiente contenido:
#!/bin/bash input=$1 output=$2 if [ -z $output ]; then echo "Usage: $0 input output" exit 1 fi file=`echo -n ${input##file://} | perl -pe 's/%([0-9a-f]{2})/sprintf("%s", pack("H2",$1))/eig'` md5=`echo -n $input | md5sum | awk '{print $1}'` echo $file echo $md5 shotwell_id=`sqlite3 ~/.local/share/shotwell/data/photo.db "select id from PhotoTable where filename = '$file';"` echo "sqlite3 ~/.local/share/shotwell/data/photo.db select id from PhotoTable where filename = '$file';" echo `sqlite3 ~/.local/share/shotwell/data/photo.db "select id from PhotoTable where filename = '$file';"` echo $shotwell_id if [ -z $shotwell_id ]; then ufraw-batch --embedded-image --out-type=png --size=128 $input --overwrite --silent --output=$output exit fi thumb1=`printf ~/.cache/shotwell/thumbs/thumbs128/thumb%016x.jpg $shotwell_id` thumb2=`printf ~/.cache/shotwell/thumbs/thumbs128/thumb%016x.png $shotwell_id` thumb3=`printf ~/.cache/shotwell/thumbs/thumbs128/thumb%016x.tif $shotweel_id` if [ -e $thumb1 ]; then thumb=$thumb1 echo $thumb elif [ -e $thumb2 ]; then thumb=$thumb2 echo $thumb elif [ -e $thumb3 ]; then thumb=$thumb3 echo $thumb else ufraw-batch --embedded-image --out-type=png --size=128 $input --overwrite --silent --output=$output exit fi replaceWithLink() { sleep 1 ln -sf $thumb ~/.cache/thumbnails/normal/$md5.png } # gnome-thumbnail-factory doesn't support links cp $thumb $output # however, linked thumbnails work, so replace them after a delay replaceWithLink &
y por último tendrás que cambiar el archivo que he mencionado anteriormente, «/usr/share/thumbnailers/raw.thumbnailer», con el siguiente contenido:
[Thumbnailer Entry] Exec=/usr/bin/shotwell-raw-thumbnailer %u %o MimeType=image/x-3fr;image/x-adobe-dng;image/x-arw;image/x-bay;image/x-canon-cr2;image/x-canon-crw;image/x-cap;image/x-cr2;image/x-crw;image/x-dcr;image/x-dcraw;image/x-dcs;image/x-dng;image/x-drf;image/x-eip;image/x-erf;image/x-fff;image/x-fuji-raf;image/x-iiq;image/x-k25;image/x-kdc;image/x-mef;image/x-minolta-mrw;image/x-mos;image/x-mrw;image/x-nef;image/x-nikon-nef;image/x-nrw;image/x-olympus-orf;image/x-orf;image/x-panasonic-raw;image/x-pef;image/x-pentax-pef;image/x-ptx;image/x-pxn;image/x-r3d;image/x-raf;image/x-raw;image/x-rw2;image/x-rwl;image/x-rwz;image/x-sigma-x3f;image/x-sony-arw;image/x-sony-sr2;image/x-sony-srf;image/x-sr2;image/x-srf;image/x-x3f;image/x-NEF;image/x-nikon-NEF;
De esta forma, no creas arhivos duplicados si la miniatura ya la generaste con Shotwell, siempre y cuando, tal y como he mencionado antes, importes los archivos en el directorio en el que se encuentran
Conclusiones
Desde luego, que la segunda solución está mas pensada para usuarios que hagan un uso exhaustivo de Shotwell, no para los ocasionales como puedo ser yo mismo. Pero desde luego, para ese caso, supone un ahorro considerable pues no duplicas las miniaturas.
Por otro lado, he estado haciendo diferentes pruebas para comprobar que imágenes RAW se «miniaturizan», para lo que he utilizado algunas de las disponibles en RAWSamples. De las pruebas realizadas, con diferentes marcas y modelos, he visto que se llega a conseguir el 75% de los thumbnails.
Después de haber estado trabajando en ambas posibilidades, he pensado, que en los próximos días crearé estos paquetes y los añadiré al repositorio, de forma que cualquier usuario lo pueda instalar, sin necesidad de tener que escribir el código, que aunque no es nada complicado, siempre es mas cómodo si se puede instalar desde un repositorio, y se puede mantener fácilmente.
Más información | UbuntuForums, Tech blog of Anton Keks, Launchpad
Imágenes | RAWSamples
Gracias por el tutorial, pero creo que ha quedado obsoleto, no consigo ver las miniaturas de los archivos raw en ubuntu para mi es algo crucial. Imagino que estás muy «atareo» pero si sacas tiempo te agradecería mucho una solución a este problemilla de ubuntu que para mi es un problema muy grande. Gracias en cualquier caso, saludos desde Pamplona.