К основному контенту

Ретиновый мир

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

Что я имею ввиду? В то прост­ранство, которое на класси­ческом, обычном экране занимает одна точка (далее пиксель), на ретине поме­щаются четыре. Когда откры­ваешь на ретина-экране страницу с картин­ками, сверстанную под обычный экран, браузеру неоткуда взять изобра­жение улучшен­ного качества, он берет что дают и просто растя­гивает это в два раза по горизон­тали и по вертикали, ну и немного сглаживает результат. Получается что получается. Тут надо сказать, что если на этой картинке представ­лена обычная бытовая фотография, то описанного подвоха можно и не заметить. Проблемы вылезают, если на изобра­жении есть контрастные линии. Это могут быть графики, картинки с текстом, что-нибудь такое.

Когда сайт заранее адап­тируют для открывания на разных устрой­ствах, самое правильное подго­товить два изобра­жения: поменьше, для мониторов попроще, и в два-на-два раза больше, для мониторов повышенной четкости. Например, 320x240 точек для классики и 640x480 точек для ретины. В коде страницы пишется программа, при каждом открытии страницы трево­жащая сервер сайта, которому прихо­дится проверять на каком обору­до­вании отобра­жается страница и, в свою очередь подсо­вывать браузеру картинку нужного разре­шения. Такой подход еще и потому правильный, что экономит интернет-трафик.

Но, как и у каждого яня, у этого подхода тоже есть свой инь. Проблема в том, что никто вам не даст нахаляву насиловать их обору­до­вание. Если каждому давать, поломается кро… кхм, сервер, вестимо. Поэтому, на общест­венных ресурсах наглухо закры­вается любая возмож­ность вставить свои испол­ня­емые скрипты в код страницы.

Для себя я решил проблему так: я загружаю на сайт только бо́льшую картинку, а в коде страницы указываю, что она занимает меньшее простран­ство. Для этого, в тег <img> дописываю атрибут style.

Следующую, графи­ческую часть лучше посмот­реть и сравнить для себя на разных экранах.

Для примера приведу картинку, которую я нарисовал для сайта о програм­ми­руемом кальку­ляторе Citizen SRP–175. Плани­ро­валось, что изобра­жение будет занимать 153x42 условных пикселей простран­ства страницы. Подго­товлены два варианта:

Изображение-1x
153x42 точек, здесь в код страницы вставлена только ссылка на картинку, как есть, без применения стилей
Изображение-2x
306x84 точек, тоже вставлена только ссылка на картинку, как есть, без применения стилей

Опа! Ретина в попе. Сравнили? Заметили? На ретине браузер оба изобра­жения увеличил и размыл. Испортил ради совмес­ти­мости, чтобы они занимали относи­тельно ту же площадь на стоящих бок-о-бок экранах. А на класси­ческий же экран браузер вывел картинки как они есть, в опти­мальном качестве.

Теперь выведу обе эти же, физически разного размера картинки, но с добав­лением в тег <img> одного и того же атрибута style="height:auto; width:auto; max-width:153px; max-height:42px". Здесь я велю браузеру выкру­чи­ваться как хочет, но чтоб изобра­жение занимало максимум 153x42 пикселей. Полностью команда в обоих случаях выглядит так:

<img src="http://www.АДРЕС.com/КАРТИНКА-N.png" style="height:auto;width:auto;max-width:153px;max-height:42px">
Изображение-1x
153x42 точек изображения занимают 153x42 точек на классике, а на ретине растянуты до 306x84 точек, которые, тем не менее, занимают все те же 153x42 условных пикселей страницы сайта
Изображение-2x
306x84 точек изображения вписаны в 153x42 пикселей страницы, что на ретине покажет картинку как есть, а на обычном экране сожмет ее до 153x42 точек экрана

Что называется, кто там нонеча за ретина-экраном, почув­ствуйте разницу. Остальным может пока­заться, что в двух последних случаях картинка исполь­зована одна и та же.

Повторюсь. При таком моем бюджетном способе, на ретина-экран браузер выводит картинку как есть, а на экране прошлого поколения сжимает ее. И это меньшее из зол. Да скачи­ваются лишние байты, но зато умень­шенная картинка на обычном экране смотрится гармо­ничнее, чем растя­нутая на улучшенном.


Правка

Нашел способ проще — у тега img есть параметр zoom для этого. Настроил таблицы CSS, теперь в этом блоге все картинки проходят через фильтр <img stile="zoom: 50%" /> и смотрятся сказочно как на ретине, так и, насколько это возможно, на класси­ческих мониторах.

Комментарии

Популярные сообщения из этого блога

Сканируем паспорт

Как сказал бы сборник российских пословиц и поговорок: Сорок пять — беги паспорт получать! Дожил. Получил. Новый, современный, с цветной фотографией под голографической ламинацией. Все сверкает и переливается — красота! И тут наступает время Первого Скана. Кладу новенький паспорт в сканер, давлю сканировать, беру лист… что за черт! — на моей фотографии в паспорте, прямо на лбу капслоком написано РОССИЯ. Хоть сегодня и праздник такой, но — нет. Наверно, положил неправильно. Поворачиваю паспорт в сканере, повторяю — теперь рот заклеен стикером »РФ«. Еще поворот — диадема двуглавая. Настоящий — как ни крути Паспорт должен быть защищен, понятное дело. Но мне стало интересно, а можно ли вообще найти угол сканирования, при котором проявление голографических знаков над фотографией минимально? После серии сканирований (надо ж куда-то лишний выходной потратить) нашел, что голограмма видна всегда, но паспорт лучше всего класть под углом 140 ° —145 ° . Лайфхак Прислонить к рамке ска...

В контакте — временно

Осенило. Придумал парочку по-насто­ящему замеча­тельных, элегантных даже, названий сети (SSID) для роутера. Это в продол­жение темы о написании русских фраз латин­скими буквами , что полезно для называния сетевых устройств, где кириллица в принципе не приемлема — эдакий изящный способ донести до окружа­ющих некое скрытое послание. cold and snowy wifi hotspot, by woodleywonderworks Мои новые месседжи на роутере: B KOHTAKTE — закрытая локальная сеть, для своих. BPEMEHHO B COTE — временный халявный вайфай для алчущих связи. Теперь так, да. Красиво же, не? Кстати Пока ехал по городу и набирал текст, нашел замеча­тельное и ориги­нальное послание в названиях сетей: Give password for sex. Красота! А сам автома­тически адапти­ровал к описы­ваемой здесь системе: A CEKPET 3A CEKC . С одним допуще­нием, правда — исполь­зована цифра, вместо буквы.

В удаленку на Ґноме

Шпора по Линуху Затосковал в macos, пробую периодическими набегами вернуться на Linux. То в виртуальной машине его поставлю, то вторым бортом. О, сколько снова вопросов, поисков и... иногда даже решений. Это моя записная книжка чтобы решения эти не растерять. Подключение к рабочей сети по VPN Мне важно чтобы я мог работать удаленно. Не то чтобы это было моё основное занятие, просто иногда в выходной проще подключиться и сделать, чем долго объяснять в трубку на пальцах да по памяти что надо увидеть и где нажать чтобы возможно исправить нетиповую ситуацию. На работе у меня конечно же Виндоза, дома есть подопытный Линукс с сороковым Ґномом. Мне выданы ключи от туннеля ви-пи-эн (сертификат ca.crt , файл конфигурации work.ovpn и логин с паролем). Первым делом создаю скрытую папку .cert и сохраняю в нее полученные сертификат с файлом конфигурации туннеля. $ mkdir ~/.cert $ mv ca.crt ~/.cert $ mv work.ovpn ~/.cert Теперь создаю новое VPN-соединение импортируя OVPN ф...