Журнал LinuxFormat - перейти на главную

LXF99:Вопрос5

Материал из Linuxformat
(Различия между версиями)
Перейти к: навигация, поиск
(Новая: ===Фото-групповуха=== '''В:''' ''Мне бы хотелось иметь простую команду для перевода всех RAW-изображений в па...)
 
м (восстановление кавычек в коде AWB)
 
Строка 8: Строка 8:
 
   for f in ~/photographs/new/*.PEF
 
   for f in ~/photographs/new/*.PEF
 
   do
 
   do
     dcraw -c $f” | pnmtotiff -lzw >${f/.PEF/.tif}
+
     dcraw -c "$f" | pnmtotiff -lzw >"${f/.PEF/.tif}"
 
   done
 
   done
 
</code>
 
</code>
Строка 14: Строка 14:
 
Аргумент '''-c''' велит ''dcraw'' посылать данные на стандартный вывод, который передается на вход ''pnmtotiff''. Выражение '''${f/.PEF/.tiff}''' подставляет имя исходного файла, меняя расширение '''PEF''' на '''tif'''. Чтобы использовать ''ImageMagick'', измените третью строку на
 
Аргумент '''-c''' велит ''dcraw'' посылать данные на стандартный вывод, который передается на вход ''pnmtotiff''. Выражение '''${f/.PEF/.tiff}''' подставляет имя исходного файла, меняя расширение '''PEF''' на '''tif'''. Чтобы использовать ''ImageMagick'', измените третью строку на
 
<code>
 
<code>
  dcraw -c $f” | convert -compress lzw – ${f/.PEF/.tif}
+
  dcraw -c "$f" | convert -compress lzw – "${f/.PEF/.tif}"
 
</code>
 
</code>
  
В этом случае ''convert'' использует обычную нотацию -для стандартного ввода. На man-страницах ''imagemagick'', ''dcraw'', ''netpbm'' и ''convert'' подробно описаны всякие дополнительные опции для тонкой настройки процесса.
+
В этом случае ''convert'' использует обычную нотацию "-" для стандартного ввода. На man-страницах ''imagemagick'', ''dcraw'', ''netpbm'' и ''convert'' подробно описаны всякие дополнительные опции для тонкой настройки процесса.
  
 
Эти команды предполагают нахождение всех ''PEF'' файлов в одном каталоге. Если Ваша камера сохраняет их во вложенных каталогах, используйте команду ''find'', чтобы создать список имен. Конвертированные изображения можно записать в другой каталог:
 
Эти команды предполагают нахождение всех ''PEF'' файлов в одном каталоге. Если Ваша камера сохраняет их во вложенных каталогах, используйте команду ''find'', чтобы создать список имен. Конвертированные изображения можно записать в другой каталог:
 
<code>
 
<code>
   find /mount/pointof/camera -name *.PEF’ | while
+
   find /mount/pointof/camera -name '*.PEF' | while
 
   read f
 
   read f
 
   do
 
   do
     dcraw -c $f” | convert -compress lzw - ~/
+
     dcraw -c "$f" | convert -compress lzw - "~/
   photographs/tiff/$(basename $f” .PEF).tif”
+
   photographs/tiff/$(basename "$f" .PEF).tif"
 
   done
 
   done
 
</code>
 
</code>
  
 
Здесь мы используем команду ''basename'' для извлечения имени файла из полного пути и удаляем расширения. Кавычки вокруг имен файлов нужны на случай, если имя файла или каталога содержит пробелы. '''НВ'''
 
Здесь мы используем команду ''basename'' для извлечения имени файла из полного пути и удаляем расширения. Кавычки вокруг имен файлов нужны на случай, если имя файла или каталога содержит пробелы. '''НВ'''

Текущая версия на 18:01, 27 апреля 2008

[править] Фото-групповуха

В: Мне бы хотелось иметь простую команду для перевода всех RAW-изображений в папке, скажем, /home/andy/photographs/new, в формат TIFF со сжатием LZW. Не знаю, важно ли это, но расширение RAW-файлов – PEF (в формате RAW Pentax). Энди Инглэнд [Andy England]

О: Программа для конверсии «сырых» (raw) файлов с цифровых камер называется dcraw (http://www.cybercom.net/~dcoffin/dcraw). Она преобразует RAW-форматы большинства цифровых камер в формат NetPBM PPM (Portable PixMap). Затем понадобится еще одна программа, для преобразования PPM-данных в TIFF. Такое умеют команда convert из ImageMagick и программа pnmtotiff из пакета NetPBM. На вопрос о том, которую предпочесть, проще всего ответить «Ту, что уже установлена». Dcraw должна быть в репозитории вашего дистрибутива; в противном случае загрузите исходный код и скомпилируйте/установите ее обычным порядком.

Чтобы не забивать при преобразовании жесткий диск PPM-файлами (PPM –занимающий много места несжатый формат, где используются три байта на пиксель), можно перекинуть вывод dcraw прямо в программу конверсии. Для групповой обработки с помощью ppm2tiff всей директории с файлами, запустите в терминале

 for f in ~/photographs/new/*.PEF
 do
   dcraw -c "$f" | pnmtotiff -lzw >"${f/.PEF/.tif}"
 done

Аргумент -c велит dcraw посылать данные на стандартный вывод, который передается на вход pnmtotiff. Выражение ${f/.PEF/.tiff} подставляет имя исходного файла, меняя расширение PEF на tif. Чтобы использовать ImageMagick, измените третью строку на

dcraw -c "$f" | convert -compress lzw – "${f/.PEF/.tif}"

В этом случае convert использует обычную нотацию "-" для стандартного ввода. На man-страницах imagemagick, dcraw, netpbm и convert подробно описаны всякие дополнительные опции для тонкой настройки процесса.

Эти команды предполагают нахождение всех PEF файлов в одном каталоге. Если Ваша камера сохраняет их во вложенных каталогах, используйте команду find, чтобы создать список имен. Конвертированные изображения можно записать в другой каталог:

 find /mount/pointof/camera -name '*.PEF' | while
  read f
  do
    dcraw -c "$f" | convert -compress lzw - "~/
  photographs/tiff/$(basename "$f" .PEF).tif"
 done

Здесь мы используем команду basename для извлечения имени файла из полного пути и удаляем расширения. Кавычки вокруг имен файлов нужны на случай, если имя файла или каталога содержит пробелы. НВ

Персональные инструменты
купить
подписаться
Яндекс.Метрика