JPEG: Почему многие веб-сайты избегают рендеринга JPEG таким образом? За и против?
Когда изображения JPEG используются веб-страницей, они обычно отображаются сверху вниз ... но они также могут отображаться с использованием режима прогрессивного JPEG , где изображение начинается полноразмерный , но размытый , а затем становится более четким с последовательными проходами, пока он не будет полностью загружен. Прогрессивная загрузка требует сохранения изображения таким образом.
Почему веб-сайты не используют прогрессивный JPEG? Каковы недостатки? Это просто отсутствие поддержки инструмента, или эти файлы каким-то образом уступают традиционным изображениям в формате JPEG сверху вниз?
8 ответов
Прогрессивный JPEG поддерживал сканер с момента его создания. Страница Wikipedia на JPEG говорит:
Однако прогрессивные JPEG-файлы не так широко поддерживаются, [править] и даже некоторое программное обеспечение, которое их поддерживает (например, версии Internet Explorer до Windows 7) [12] отображает только изображение после того, как он был полностью загружен.
N.B. Первое утверждение несвязано, и источник для второго не обязательно говорит, что это поддерживается только в Windows 7.
Не могу вспомнить, когда я впервые избежал Progressive JPEG, но самая последняя проблема заключалась в том, что анализаторы изображений во Flash (которые могут загружать PNG, GIF и JPEG) не может загрузить Progressive JPEG ( Обновлена ссылка на интернет-архив ) .
Я обычно сохраняю изображения как прогрессивные.
Я никогда не испытывал или не слышал о недостатках или проблемах рендеринга . И даже если какой-то очень старый браузер может не оказывать прогрессивного эффекта, они все равно наконец отображают изображение, поэтому это не большая проблема.
Прогрессивные изображения JPEG обычно меньше по размеру, чем одно и то же изображение без прогрессивного .
Например, изображение формата JPG (максимальное качество) JPG может легко стать 6K (по-прежнему макс. качество) при прогрессивной передаче и без потери пикселя определения.
Кроме того, с редакторами изображений, такими как Photoshop, сохранение изображения в прогрессивном формате JPG ничего не принимает (это просто флажок в окне, который появляется при использовании команды «Сохранить как»), поэтому я обычно делаю это.
Artlung рассмотрел некоторые соображения поддержки, но есть и тот факт, что это просто не будет иметь большого значения в большинстве случаев. Важный бит в вопросе - «пока он не будет полностью загружен». Прогрессивный формат не является эстетическим, что делает размытие изображения, оно функционально:
Если изображение достаточно велико (по размеру файла), которое требуется для загрузки, then вы увидите прогрессию.
Даже если каждый JPEG везде был сохранен как прогрессивный, при текущих общих скоростях соединения подавляющее большинство изображений, с которыми вы собираетесь столкнуться, недостаточно велико, чтобы вы когда-либо видели эффект в какой-либо значительной степени. Это была отличная идея, когда все были на медленных телефонных модемах, но все больше любопытство ограниченного практического применения за пределами сайтов, которые действительно требуют очень больших изображений, таких как придирчивый фотограф или что-то в этом роде.
То же самое касается чересстрочных GIF-файлов, поскольку в комментариях кто-то их привязал.
Здесь есть потенциальный фактор аудитории, скажем, если вы рассматриваете страны с менее развитой сетевой инфраструктурой, где они могут получать значительно более медленные скорости, но я не могу с этим поговорить. Я мог видеть, что они, возможно, имеют какое-то приложение для просмотра в мобильных приложениях, но затем мы возвращаемся к пятнистой поддержке этой функции.
Google использует прогрессивную загрузку своих изображений на images.google.com. Сначала они растягивают большой палец, чтобы просмотреть размеры, а затем загружают исходное изображение. Я считаю, что это хорошая практика. Так же, как Progressive JPEG
Прогрессивный рендеринг (gif /jpeg) был для старых добрых дней в Интернете, где серверы были медленными, а передача данных последней мили была выполнена при обходе через POTS. Никто больше не тратит на это время.
Значительная часть моей аудитории на широкополосной сети не имеет никакой цели, кроме минимального затухания на очень большом изображении (хотя на кабеле 8 МБ это едва заметно). Если ваша аудитория все еще находится на телефоне удаленного доступа, вам может понадобиться беспокоиться об этом.
И как указано в комментариях ниже, то, что является старым, является новым, и новая скорость передачи последней мили по-прежнему является проблемой для сети мобильной связи и спутникового доступа из-за проблемы со скоростью или латентностью. Поэтому обратите внимание на свою аудиторию и повторите ее для лучшего удобства пользователя, когда вам это нужно.
Для таких сайтов, как Википедия, которые на самом деле выдают свои собственные эскизы «на лету», есть еще одно соображение: все алгоритмы для создания прогрессивных JPEG-файлов занимают больше памяти и циклы процессора. Когда исходные файлы достаточно велики, это создает проблемы.
Многие библиотеки не предлагают его вообще или нет по умолчанию. Но это не причина. Я запускаю сайт, предлагающий изображения, и я ненавижу прогрессивные JPEG. Зачем? Потому что используемый в них алгоритм хуже моего! Я использую ту же технику, что и Google, и на самом деле я накладываю среднюю миниатюру поверх маленькой. Таким образом, пользователь получает почти полное качество мгновенно при любом подключении независимо от того, насколько огромный был оригинал. Прогрессивные файлы становятся очень блочными, разрушая этот эффект.
Наложение эскизов - это способ сделать это.
Progressive JPEG работает в Chrome, Firefox и IE 9+. Я считаю, что большинство браузеров используется сегодня для использования Интернета.
Прогрессивный JPEG обеспечивает лучший пользовательский интерфейс во многих ситуациях. Мне нравится прогрессировать при посещении медленного сайта (островная страна, эффект slashdot, пиковый трафик и т. Д.). Мне не нужно сразу видеть качество. Первоначальная идея изображения часто достаточно хороша. Это раздражает меня больше, чтобы увидеть медленное погружение сверху вниз. Это напоминает мне о 300-битных модемных днях загрузки ASCII-контента.