2013-02-14

Фотоархив

Оказывается, jpeg-файлы, которые записывают фотоаппараты содержат в себе множество всякой информации, в том числе preview-изображения. Практически все фотоаппараты содержат в себе thumbnail preview с размером порядка 160x120. Но часто есть и preview большего размера. Например Nikon D90 содержит спрятанную картинку vga-разрешения, а мой Sony Nex-5 даже встроенные full hd jpeg. Jpeg - это такая матрешка, в которой может храниться несколько встроенных jpeg разного размера.

Собственно, понятно, что фотоаппарат должен быстро показывать картинку на встроенном мониторе и на телевизоре через hdma. Разбирать каждый раз многомегапиксельные файлы - слишком энергоемкое занятие для батареи. Проще это сделать один раз, когда картинка еще свежа в памяти.

Это навело меня на мысль сделать web-интерфейс прямо на основе архива с фотографиями, где thumbnail-картинки и уменьшенные preview выдергиваются по запросу из полно-размерных фотографий.

Оказалось что внутри jpeg творится жуткий бардак. Фирмы кодируют все по-разному, даже в разных версиях одной модели, так что программку работающую для всех видов фотоаппаратов сделать сложно. Но то, что у меня получилось работает для всех моих фотоаппаратов неплохо, за исключением тех снимков, которые я имел несчастье обрабатывать в metadata destruction tools, которыми являются почти все фото-редакторы (а Picasa - особенно). Я теперь ставлю на фотки read-only сразу после копирования их на сервер, чтобы никакой редактор ничего не трогал внутри.

Короче, я программку сделал. Работает на моем домашнем сервере Synology, довольно неплохо для его невысоких вычислительных возможностей, поскольку она не производит никаких манипуляций с изображениями. Практически, есть несколько "но": часть обработанных фотографий и видео-роликов в архиве не содержит preview. Thumbnails, которые дает мой nex-5, почему-то очень невысокого качества. А preview, которые дает Nikon N90, очень маленькие. Старые фотоаппараты не делали никаких preview, но для них можно использовать сами полные изображения, поскольку они и так не слишком высокого разрешения.

Мне понравилось, что получилось. Теперь делаю добавление тегов, звездочек и группировку в альбомы. Эта дополнительная информация хранится отдельно от фотографий, чтобы не модифицировать оригинальные файлы. Может быть потом сделаю эту программку open source.

Я не буду давать читателям доступ к моему архиву :-), лишь покажу снимок самого верхнего уровня каталога.


No comments: