Очень большие изображения в веб-браузере - PullRequest
1 голос
/ 07 сентября 2010

Мы хотели бы отображать очень большие (50 МБ плюс) изображения в Internet Explorer.Мы хотели бы избежать сжатия, так как алгоритмы сжатия - это не то, что CSI заставит нас поверить в то, что они есть, а полученные файлы имеют слишком большие потери.

В результате мы получили два варианта: Silverlight Deep Zoom илирешение на основе Flash (например, Zoomify).Проблема заключается в том, что оба из них требуют преобразования в мозаичный вывод и / или преобразования в определенный тип файла (Zoomify поддерживает один собственный тип файла, PFF).

Нам интересно, существует ли решение, котороеПозволит нам просматривать изображения без преобразования перед этим.

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

Ответы [ 4 ]

5 голосов
/ 07 сентября 2010

Плиточный подход действительно является правильным способом сделать это.

Ваши пользователи не хотят загружать файл размером 50 МБ, прежде чем они смогут начать просмотр изображения. Вы не хотите тратить пропускную способность, чтобы обслуживать 50 мегабайт каждому пользователю, который может просматривать только часть вашего изображения.

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

Нет простого простого способа обслуживания только части изображения, если только вы не хотите использовать библиотеку на стороне сервера, такую ​​как imagemagik или PIL, для извлечения определенной части изображения для каждого пользователя. Вы, вероятно, не хотите этого делать, потому что это создаст значительную нагрузку на ваш сервер.

В качестве альтернативы, вы можете использовать что-то вроде инструмента карты Google, чтобы обеспечить масштабирование и масштабирование. Некоторые комментарии по этому поводу доступны здесь:

http://webtide.wordpress.com/2008/08/27/custom-google-maps/

1 голос
/ 01 февраля 2018

Взгляните на OpenSeadragon .Чтобы изображение могло работать с OpenSeadragon, вы должны сгенерировать масштабируемый формат изображения, в котором упоминается здесь .Затем следуйте инструкции по началу работы здесь

0 голосов
/ 07 сентября 2010

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

КакЧто касается сжатия, вы говорите, что это слишком с потерями, но если это то, что вы видите, вы, вероятно, используете неправильный алгоритм сжатия или настройку для типа изображения, которое у вас есть.Формат jpg имеет настройки качества для контроля потерь, а сжатие PNG - без потерь (пиксели, которые вы получаете после распаковки, являются точными значениями, которые вы имели до сжатия).Поэтому подумайте об изменении того, что вы используете в качестве сжатия, и не полагайтесь только на настройки по умолчанию в редакторе изображений.

0 голосов
/ 07 сентября 2010

Браузер не собирается загружать файл размером 50 Мб;если вы не порежете его, нет разумного способа сделать так, чтобы он не отставал.

...