Linux Gazette на русском | Выпуск #141 |
Тираж 8971 экз.
Здравствуйте! Сегодня Вашему вниманию предлагается статья, посвящённая
любителям цифрового фото, в которой автор даёт краткое описание того,
как можно использовать Linux для обработки, хранения и публикации цифровых
фотографий.
С первой же установки на моей машине в 2000-м году Linux
выполняет все, что мне нужно на компьютере. Я использую его в
следующем:
веб-серфинг и электронная почта
разработка программного обеспечения
написание статей
хостинг сайтов
цифровая фотография
Эта статья фокусируется на последнем пункте, цифровой
фотографии, и описывает применение Linux для хранения, обработки и
публикации моих цифровых фото.
Хранение фотографий
Я храню мои фотографии в двух местах: на жестком диске (в
качестве временного хранилища) и на CD-ROM. На моей машине
находятся фотографии последних нескольких месяцев и, при
необходимости, их можно быстро найти. Более старые фото я записываю
на компакты, чтобы освободить место на диске.
Для передачи фотографий с камеры на компьютер я использую
Драйвер USB Mass
Storage. Этот драйвер является частью ядра Linux и
позволяет мне монтировать фотоаппарат (точнее карту памяти в
аппарате - Прим.пер.) как SCSI-устройство. После чего я
переношу фотографии на мой жесткий диск командой
mv. Обычно это выглядит так:
Весьма просто, так? Я монтирую камеру, переношу фото в каталог
на диске и размонтирую камеру.
(Обращаю внимание новичков и самых ленивых на опцию, которую
использовал Роб при монтировании -- "-n". Она
сообщает утилите mount, что устройство нужно монтировать без
записи соответствующей информации в /etc/mtab Это необходимо в том
случае, если /etc расположен на файловой системе смонтированной
в режиме "только-для-чтения". Надеюсь, идея ясна? Роб таким образом
пытается дополнительно обезопасить содержимое /etc от нежелательных
изменений. Правда, в том случае, если приходится вносить изменения
в настройки системы, раздел необходимо перемонтировать в режиме
"чтение-запись". Прим.ред.)
(Драйвер USB Mass Storage работает только с некоторыми моделями
цифровых фотоаппаратов. У меня -- Sony DSC-F707. Многие другие
камеры, например серия Canon PowerShot, распознаются программой Gphoto2. Некоторые камеры вообще
не работают под Linux -- все зависит от производителя:
предоставляет ли он нам, сообществу свободного ПО, достаточно
технической документации для написания драйвера).
(На сегодняшний день, если я не ошибаюсь, лишь самые дешевые
цифровые фотоаппараты не работают с Linux. - Прим.пер.)
(В любом случае, если вашу фотокамеру не распознаёт Gphoto2, вы
можете купить переходник для карты памяти и монтировать её так, как
предлагает автор. - Прим.ред.)
Когда мой диск заполняется, я переношу старые фото на CD-ROM.
Чтобы сделать это, я вставляю пустой CD-ROM в мой CD Writer и ввожу
в командной строке (обратитесь к документу CD Writing
HOWTO за информацией о работе с вашим CD Writer):
(Если не хотите пользоваться командной строкой, то рекомендую
графическую оболочку к cdrecord, xcdroast. Перебрав
несколько front-end'ов для cdrecord, я остановился именно на ней.
Прим.ред.)
Эти команды создают образ компакта и записывают его на
матрицу.
Обработка фотографий
В фотографии важным понятием является композиция.
Понятие "композиция" включает в себя взаимное расположение объектов
на фотографии. При создании фотографии, фотограф должен решить
важные вопросы:
нужно ли включить объект X в фотографию?
нужно фотографировать горизонтально или вертикально?
какой должна быть глубина резкости?
Как начинающему фотографу, мне недостает навыков композиции.
Обычно я включаю в свои фотографии слишком много фона и не
использую всех возможностей и настроек камеры.
Для спасения моих плохих фотографий я пользуюсь программой
GIMP. GIMP означает GNU
Image Manipulation Program. Это полнофункциональная программа
обработки изображений, аналогичная программе Adobe Photoshop. Я
использую ее для:
обрезания фотографий с некорректной композицией
("кадрирование", если я не ошибаюсь - Прим.пер.)
изменение насыщенности цветов на фото
увеличения резкости размытых фотографий
Это лишь несколько возможностей GIMP, но они значительно
повышают качество моих фотографий. Ну, а я продолжаю изучать
возможности GIMP.
Публикация фотографий
Я демонстрирую цифровые фотографии моим друзьям и семье. Для
этого я отсылаю мои фото на общедоступный сайт. Но перед отправкой
я:
изменяю размер фото на подходящий для веб
создаю макеты фотографий
генерирую HTML для отображения фотографий на сайте
Для этих целей я применяю два скрипта на Python. Первый
называется generate_photographs.
Этот скрипт использует команду convert для
создания макетов и фото с измененным размером
(convert входит в пакет ImageMagick.
Обратите на него внимание). Вот полный скрипт:
#!/usr/bin/env python
import os
#
# Печатает вызов в stdout, а потом передает его ОС.
#
def system_call(s):
print s
os.system(s)
#
# Чистит каталоги. "small"
# содержит макеты, "medium"
# содержит фото с размером для веб.
#
for d in ("small", "medium"):
system_call("rm -rf " + d)
system_call("mkdir " + d)
files = os.listdir("photographs")
for file in files:
if file != ".directory":
system_call("convert -resize 640x480 photographs/" + file + " medium/" + file)
system_call("convert -resize 160x120 medium/" + file + " small/" + file)
Второй скрипт называется generate_html. Он
перебирает фотографии и создает HTML для их просмотра. Вот этот
скрипт (для наглядности я убрал из него HTML-код):
#!/usr/bin/env python
import os
#
# убран HTML-код....
#
html = ""
files = os.listdir("photographs")
br = 0
for file in files:
html += '<a href="medium/' + file + '">'
html += '<img src="small/' + file + '"></img>\n'
html += '</a>'
if br:
html += '<br>\n'
br = 0
else:
br = 1
#
# убран HTML-код....
#
f = open("index.php","w+b")
f.write(html)
f.close()
После выполнения этих двух скриптов, я отсылаю файлы на сайт, а
друзьям -- адрес, где находятся фотографии.
Заключение
В этой статье я описал использование Linux для хранения,
обработки и публикации личных цифровых фотографий. Надеюсь, я
изложил это достаточно ясно и вы сможете извлечь из этого
пользу.
Роб Тофер
Роб -- инженер-программист, пишущий на C++ и работающий в Нью Йорке.
Команда переводчиков: Александр Куприн, Андрей Киселев, Александр Михайлов, Александр Саввин,
Владимир Меренков, Иван Песин, Игорь Яровинский, Павел Соколов, Роман Шумихин,
Сергей Скороходов, Юрий Прушинский, Юрий Султанов
Со всеми предложениями, идеями и комментариями обращайтесь к
Александру Куприну (ru_classic at mail.ru). Убедительная
просьба: указывайте сразу, не возражаете ли Вы против публикации
Ваших отзывов в рассылке.