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