2013-09-27 3 views
1

Первое сообщение на SO; надеюсь, что я делаю это правильно :-)Обработка очень больших файлов изображений в веб-браузерах

Имейте ситуацию, когда пользователи должны загружать и просматривать файлы с очень высоким разрешением (им нужно панорамировать, наклонять, масштабировать и аннотировать изображения). Один файл иногда пересекает 1 ГБ, поэтому загрузка полного файла на стороне клиента не является вариантом.

Мы думаем о том, чтобы позволить пользователям загружать файлы на сервер (как и все), а затем применять некоторое шифрование на стороне сервера, создавая несколько сравнительно небольших изображений с низким разрешением с различными размерами. Затем мы даем пользователям миниатюры с параметром размера холста на веб-странице, чтобы они могли выбрать и начать свою работу.

Предположим, пользователь открывает изображение с низкой степенью сложности с размером холста 1280 x 1028. Изображение будет разбито на плитки перед отображением, и когда пользователь нажимает на заголовок, он будет напоминать масштабирование определенной плитки. Клиент отправит запрос на сервер с запросом на изображение с более высоким разрешением для заголовка. Сервер отправит изображение, которое будет снова разбито на заголовки, чтобы пользователь мог щелкнуть и получить другое изображение с более высоким разрешением с сервера и т. Д. Наличие нескольких изображений с различным разрешением поможет нам разбить изображения на плитки и удовлетворить потребности пользователей (' сохранить масштабирование или выйти из плитки.

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

Мы должны планировать 100 до 200 пользователей, подключенных к веб-сайт одновременно, и наша .NET окружения, если это имеет значение

Спасибо!

ответ

0

Вопрос немного расплывчатый. Я предполагаю, что вы ищете подсказки, так что вот несколько:

  1. Я вижу, что загрузка изображений является проблемой на первом месте. Где я родом, скорость загрузки намного медленнее, чем скорость загрузки. (Но вы можете сделать это, если вам нужно, чтобы ваш пользователь загружал гигабайты ...) Возможно, предложите более стабильную загрузку, чем веб. FTP, если нужно.
  2. Преобразование в меньшие куски не должно быть большой проблемой. Используйте один из доступных инструментов. Возможно, вообразить. Я вижу, что есть оболочка .net: https://magick.codeplex.com/
  3. Больше, чем конвертировать. Я думаю, что важно не делать это каждый раз на лету (вам нужна действительно большая машина), но только после загрузки изображения. Если вы хотите масштабировать, вы можете передать это на другое поле в сети.
  4. Для зрителя. Это интересная часть. Есть некоторые готовые к использованию. У Google есть один. Это называется «Карты» :). Но есть бесплатная альтернатива: OpenLayers из проекта OpenStreetmap: http://wiki.openstreetmap.org/wiki/OpenLayers Все, что вам нужно сделать, это называть ваши сгенерированные файлы в правильном порядке и конфигурацию litte.
  5. Даже если вы по каким-то причинам создадите плитки на лету или не можете использовать что-то вроде OpenLayers, я попытаюсь придерживаться схемы именования. С чем-то начинающим заниматься никогда не бывает плохой идеей.
+1

Это отличная информация; именно то, что я искал. Извините, я не могу проголосовать за вас, говорит, что мне нужна репутация 15 или более :( – WhatsMyName

+0

Вы можете проверить ответ как правильно :) – Scheintod

+0

https://magick.codeplex.com/ - это более новая оболочка с большей функциональностью, не могли бы вы изменение вашей ссылки? – dlemstra

Смежные вопросы