Как стать автором
Обновить

Какие средства публикации и просмотра фотопанорам существуют для тех, кто не прибегает к услугам внешних хостингов?

Время на прочтение 7 мин
Количество просмотров 13K
Спору нет: Gigapan, 360 Cities, ViewAt всё это неплохие глобальные сборники и хостинги фотопанорам для публикации и просмотра всеми желающими. О достоинствах 360 Cities многие из нас узнали, разглядывая восьмидесятигигапиксельную панораму Лондона; кроме того, панорамы 360 Cities дней пять назад были включены в фотослой Google Earth. Отдельным слоем в Google Earth показываются и избранные панорамы из Gigapan; другим достоинством Gigapan является флэшёвый демонстратор многомегапиксельных и даже многогигапиксельных фотографий, который может бесплатно размещаться на других сайтах и подкачивает увеличенное изображение по мере нужды (примерно подобно тому, как Google Maps или Google Earth подкачивает свои детальные спутниковые фотографии). Это явное преимущество по сравнению с сайтом 360 Cities (который требует платы за размещение панорам за пределами некоммерческих вебсайтов) и с фотопроигрывателем ViewAt (который сперва подкачивает всю панораму из Сети, и лишь затем начинает показывать её).

Но я собрал вас поговорить о другом: наверное, есть и такие аналогичные средства для демонстрации фотопанорам, которыми пользуется фотограф, желающий разместить фотопанорамы на своём собственном сайте вместо внешнего хостинга? Или (что примерно то же самое) такие средства, которыми пользуется бизнес: музей, или картинная галерея, или какой-нибудь магазин — желающий разместить фотопанорамную экспозицию своего товара в Интернете?

Что это за средства? Как организуется просмотрщик на сайте, как организуется фотоматериал для просмотра и для подкачки по мере нужды? Есть ли открытые, свободные, или хотя бы бесплатные, готовые решения для этой цели? А если нет открытых и свободных, то каковы платные?

У меня до сих пор нет настолько хорошего ответа на эти вопросы, который бы вполне меня устраивал. Я предлагаю, однако, обозреть более дюжины решений, самому мне попадавшихся; быть может, сообщество Хабрахабра заполнит пробелы в моих изысканиях.

Изыскания логично было начать с трёх крупных фотохостингов, перечисленных выше. К сожалению, из них только ViewAt честно признаётся, каким панорамопроигрывателем пользуется: это Flash Panorama Player, цена которого ≈40 €. Основной недостаток этого варианта явствует сразу: исходные данные для него подготавливаются как шесть граней кубической проекции и подкачиваются все целиком (по крайней мере, на сайте ViewAt мне пришлось сперва смотреть на progress bar с процентами, и лишь затем на панораму). Наверное, это не лучший вариант.

Простым погугливанием по словосочетанию «360 panorama» нетрудно найти продукт 360 Panorama Lite (≈50 $). На его сайте явствует, однако, что автор употреблял какие-то особые вещества, потому что страница, начавшаяся во здравие («…without the need for plugins»), продолжается за упокой («…are looking for a java panorama viewer…»; а ведь всякому известно, что Java это именно plugin, да ещё довольно увесистый, так что запуск его редко отнимает менее нескольких секунд).

Примерно таким же способом нагугливается FirmTools Panorama Composer (ценою ≈30 $), поддерживающий формат QuickTime VR. Этот старинный и почтенный формат, насколько я его понял, вообще немало популярен среди программ, создающих фотопанорамы (взять хотя бы PTGui); однако формат этот предполагает создание единого .MOV-файла, который будет грузиться из Сети весь целиком. Закинуть туда сколько-нибудь многомегапиксельную панораму (например, 20000×5000 пикселов) означало бы напрашиваться на неприятное ощущение у всех тех зрителей, которые не располагают ни терпением, ни безлимитным многомегабитным каналом связи с Интернетом. (Не секрет, что многие провайдеры предлагают юридическим лицам или пользователям сотовой связи такие тарифы, которые не назовёшь ни дешёвыми, ни скоростными, ни безлимитными.) Правда, в пользу QTVR можно сказать хотя бы то, что формат этот не требует того, чтобы зритель сперва выкачал весь файл, а затем смотрел его; во всяком случае, программа Pano2VR (ценою ≈60 €) обещает «subtiling for progressive download».

Вспомнив PTGui, уместо поискать панорамопроигрыватели в разделе ссылок на сайте PTGui. Сперва там отыскивается вышеупомянутый Pano2VR, за ним — ещё выше упомянутый Flash Panorama Player, затем — ещё нами не рассматривавшиеся krpano, PanoSalado и PTViewer.

Панорамопроигрыватель krpano обходится в 90 € но потребует ещё ≈300 € от желающих убрать на своём сайте его название из панорамопроигрывателя. (Сразу скажу: это название отображается в правом нижнем углу довольно-таки неприятным рубленым курсивом, так что я не удивлюсь желающим уплатить вчетверо за то одно, чтобы его не видеть.) Движок krpano обладает возможностью подкачки изображений по мере нужды, в том числе с постепенно увеличивающимся разрешением; и есть пример. Вообще он содержит все те функции, которые необходимы хорошему панорамопроигрывателю, вот только обойдутся они дороже, чем у всех рассмотренных выше вариантов.

Сайт PanoSalado удивляет рассказом о том, что его беспрестанно пытаются взломать конкуренты, так что этот оупенсорсный панорамопроигрыватель перенесён на вики репозитория IVRPA. Лицезрев эту вики, я не нашёл на ней ни документации, ни описаний программы, а только гиперссылки для скачивания самогó проигрывателя и двух дополнительных средств к нему (одно — для преобразования сферической равнопромежуточной проекции в развёртку куба, а другое — для нарезки этого куба на плитки). А судя по той документации, которая скачивается в архиве наряду с программою, её исходный код предназначен для компиляции в SWF, совершаемой средствами адобовской разработки флэшёвых роликов. Этим он напоминает PAN36OoRAMA из комплекта «visicam Tools» — ещё один открытый исходник, который также надо компилировать во Flash CS3 или в другом аналогичном средстве. Они бесполезны для тех, что не сведущ в разработке Flash-роликов и не собирается постигать её.

PTViewer написан не на Flash, а на Java, так что быстрой загрузки плагина, надо думать, не получится. Этот фотопанорамопроигрыватель, к счастью, поддерживает нарезание панорам на куски, однако только в одном разрешении (так что единственным достоинством будет начало закачки от тех элементов, которые находятся перед зрителем, с постепенным переходом к тем, которые «за спиною» у зрителя).

Если продолжать погугливание, то отыскивается ещё пара бесплатных средств: FreePV (браузерный плагин, способный воспроизводить цилиндрические и кубические панорамы) да pan0 флэшёвый движок на основе знаменитого Papervision3D, параметром которого является единственный JPEG (равнопромежуточная проекция сферы).

Уместно рассмотреть раздел ссылок и на сайте IVRPA, упомянутом выше. Там, например, отыскивается панорамопроигрыватель PURE Player, помеченный в списке ссылок как бесплатный. Бесплатный-то он, может быть, и бесплатный, но принимает файлы только в нестандартном формате IVP, создаваемом PURE STARTER TOOLKIT (ценою ≈35 $). Грубая приманка.

В том же списке без труда отыскивается SPi-V (движок на основе Shockwave 3D, не путать с Flash), который умеет грузить фотопанорамы, понимая несколько проекций (равнопромежуточную, цилиндрическую, кубическую). В остальном он не лучше вышеупомянутого pan0, пожалуй.

Некоторого внимания заслуживает также CubicVR 360°. Фотопанораму он принимает в качестве шести граней куба, как и ViewAt (то есть Flash Panorama Player). Зато не стоит ни копейки и начинает работать ещё до того, как подкачает изображения из Сети (грани куба выкачиваются последовательно, причём на скачиваемой грани отображается двумерный progress bar), а также позволяет размещать на гранях куба ясно видимые кружочки, которые служат гиперссылками, то есть загружают зрителю другой куб или открывают некоторую веб-страницу (что позволяет организовывать так называемые «виртуальные туры»). Но и в этой сладенькой бочке мёда есть своя ложка дёгтя: на сайте CubicVR 360° подчёркивается его гибкость по отношению к формату граней куба (поддерживается GIF, PNG, JPEG и SWF), зато ни слова не сказано о том, что размеры всех шести граней должны быть равны друг другу и некоторой целочисленной степени двойки (поддерживаются грани размером 128, 256, 512, 1024 и 2048 пикселов). Ещё более неприятен фиксированный размер проигрывателя (384×258); Flash-объект, конечно, можно увеличить, например, ровно вдвое (до 768×516) прямо в HTML, но тогда все точки станут квадратиками 2×2 пикселя, а это отнюдь не прибавит красоты отображаемой фотографии.

Совершенно отдельной страницею в истории отображения фотопанорам являются попытки достичь желаемого вообще без плагинов — за счёт современных технологий разметки гипертекста, а также его стилизации и заскриптовывания. Наиболее простым примером такого подхода является jQuery Reel, который просто перетаскивает фон объекта налево и направо, реагируя на таскание мышью (а также на таскание пальцем по сенсорному экрану мобильника или нетбука). Такое перемещение, не вносящее геометрических изменений, подойдёт для демонстрации плоскостной (или, скажем, цилиндрической) проекции панорамы — но оно не позволит демонстрировать область, сколько-нибудь близкую к зениту или надиру, без искажений и разрывов.

Очень близки к этому примеру также PanoramAh и jQuery-версия PhotoNav Showcase. Они, однако, реагируют не на таскание, а на положение мыши над изображением — эту реакцию зрителю проще обнаружить, но зато при движении мыши от одного края к другому панораму «поворачивают» только на 360° (100% ширины), не давая сделать больше одного оборота и продемонстрировать закольцованность в полной мере.

PanoScroll допускает движение фона в двух измерениях, причём он закольцовывается по горизонтали (что полезно), а также и по вертикали (а вот это для фотопанорамы неприемлемо). Движение запускается и останавливается специальными кнопками, тыкаемыми мышью; это решение менее эргономично, чем в предыдущих примерах.

Сочетанием двух вышеупомянутых подходов является jQuery virtual tour, который обеспечивает и интерактивное движение (когда пользователь тащит панораму мышью), и равномерное (после нажатия на нарисованные кнопки). Дополнительным достоинством является поддержка активных областей (задаваемых при помощи стандартной разметки <map> и <area>).

Автор jQuery spherical panorama viewer совершил единственную известную мне попытку отображать сферическую панораму посредством джаваскрипта. К сожалению, ни в Firefox 4, ни в IE8 мне не удалось добиться от его труда никаких видимых результатов, кроме надписи «Loading…», хотя анализ HTTP-запросов и показывает, что из Сети выкачивается превеликое множество файлов .jpg — должно быть, отдельных плашек, составляющих некоторое крупное изображение.

Далеко опередила своё время идея построить кубическую панораму при помощи трёхмерных CSS-преобразований со скриптами jQuery и jQuery UI, реализованная в jqPanoramic; поэтому работает она только в WebKit.

Джон Дайер экспериментировал, придавая изображению пространственные искажения джаваскриптом по вертикальным столбцам (как сделали много лет назад программисты игры DooM); однако для скорости он вынужден был сделать столбцы шириною в 5 пикселов (это неприятно «разрывает» горизонтальные линии), к тому же во блоге Ajaxian пишут, что эти демки работали только в Файерфоксе (даже в Сафари не работали).

На этом у меня всё; но если кто-нибудь из читателей вспомнит какое-нибудь средство, ещё не упомянутое выше, то прошу упомянуть его тотчас же: быть может, оно окажется даже в чём-то лучше вышеупомянутых — по качеству и (или) по цене (например, CubicVR 360° оказался же бесплатнее, а частично и понавороченнее, чем Flash Panorama Player). И сразу откровенно признаюсь в том, что не хотел приходить неподготовленным, поэтому специально задал вопрос на Хабрахабре в разделе «q&a» и подождал две недели, но там никто мне не ответил. Стало быть, если вы назовёте другое средство просмотра фотопанорам, то оно не для одного меня окажется новинкою. Не стесняйтесь, называйте.
Теги:
Хабы:
+24
Комментарии 28
Комментарии Комментарии 28

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн