Поделитесь рецептами для retina-дисплеев
Как рендерить картинки в двух разрешениях: обычном и @2x.jpg для ретина дисплеев с помощью pthumb, phpthumon и прочих? Как решаете этот вопрос?
Мое решение не без недостатков: рендерить сразу в @2x, а потом через CSS переопределять размеры.
Мое решение не без недостатков: рендерить сразу в @2x, а потом через CSS переопределять размеры.
Комментарии: 25
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
В итоге иконки будут в форматах, которые значительно легче, чем SVG, вроде WOFF2, т.к. в них не храненится значения для векторов в плоскости Z и т.д.
Ну и мне не совсем ясно, зачем писать реализацию на js, если есть нативная.
По поводу загрузки под разные экраны. Поддерживает медиа-выражения. Там хоть пол десять экранов изображения пропиши. Никаких костылей. Все нативно.
Jevix вырезал
Я бы порекомендовал написать отдельные функции и потом, где нужно их вызывать:
1) Для не ключевых картинок, вроде логотипа и т.п. Я вместо src картинки прописываю ссылку на какую-нибудь gif, где анимация загрузки. Далее, прописываю аттрибуты data-original и data-retina-original в которых значениями являются ссылки на картинки в обычном разрешении и в ретиновском (при этом для них для pthumb или др. ресайзеров я указываю, чтобы они на выходе качество процентов на 20-30 ниже давали, чем для обычных).
2) Подключаю JS скрипт LazyLoad, который загружает картинки уже после загрузки самой страницы (но он их берет из data-original и не в курсе про вариант для ретины).
3) Чтобы решить проблему прошлого пункта, пишется простой JS скрипт, который выполняется раньше LazyLoad и анализирует экран посетителя сайта и, если нужно, то тупо в data-original устанавливает значение из data-retina-original.
4) А для картинок, вроде Логотипа и т.п. Я первоначально делаю вдвое-втрое большего разрешения картинки.
Вариант 1: Мы выставляем в src ссылки на картинки с вдвое большим разрешением. Это не айс, т.к. получается, что людям с обычным экраном нужно грузить прилично более тяжелые картинки
Вариант 2: Мы ставим обычные картинки, тогда людям с ретиной придется загружать обе версии картинок, т.к. браузеру по фиг на JS и он сначала загрузит обычные версии, а потом JS вместо них воткнет Retina версии.
Вариант 3: Использовать , но тут вопрос в поддержке браузерами.