Свежие публикации

Здесь собраны все публикуемые пикабушниками посты без отбора. Самые интересные попадут в Горячее.

06 Октября 2017

Pixel art

Pixel art Pixel Art, Пиксель

Пытался,  по моему неплохо

Коробка лис ^.^

Коробка лис ^.^

Задание было таковым: придумать название и слоган

Задание было таковым: придумать название и слоган

Все технологии важны и нужны

Все технологии важны и нужны Жесткий диск, Прогресс, Компьютерное железо, Комментарии
Все технологии важны и нужны Жесткий диск, Прогресс, Компьютерное железо, Комментарии

Каламбур для тех, кто в теме.

Каламбур для тех, кто в теме.

Шрифты в Linux

(НЕ является инструкцией по руссификации интерфейса.)


Что такое шрифт


Файл шрифта (font file) содержит наборы изображений (рисунков) символов и соответствующие символам коды. Технически шрифты могут быть растровыми (bitmap fonts) или векторными (outline/vector fonts).


Растровые шрифты обычно применяют для текстового интерфейса. Рисунок символа (глиф) здесь - прямоугольный набор точек. Например, если размер текстового экрана 640x480 пикселов, а терминал настроен в режиме 80x30 (80 символов в 30 строках), то подойдёт шрифт, в котором ширина глифа - 8 пикселов, а высота - 16 (16x8).


Пример того, как может выглядеть буква А в растровом шрифте с глифами размером 16x8 точек. Пустые/фоновые пикселы показаны символом ~, закрашенные/видимые - X.

~~~~~~~~

~~~~~~~~

~~~~~~~~

~~~~~~~~

~~~XX~~~

~~X~~X~~

~~X~~X~~

~X~~~~X~

~X~~~~X~

~XXXXXX~

~X~~~~X~

~X~~~~X~

~X~~~~X~

~X~~~~X~

~~~~~~~~

~~~~~~~~

Пустое место сверху можно оставить, чтобы строки не сливались, снизу - чтобы уместить, например, буквы р или у.


Отрисовка растровых глифов на экране - относительно простая операция отображения уже готовых наборов точек на пикселы дисплея. Но растровые шрифты обычно содержат глифы только одного размера. В GUI нередко требуется отрисовывать символы разных размеров (разного кегля) одновременно, поэтому применяют векторные шрифты. Как и прочие векторные изображения, глифы таких шрифтов содержат наборы параметров для математических фигур; при использовании шрифта программа "растеризУет" глифы (создаёт набор точек). Готовые растеризованные глифы называют "кэшем шрифта" (font cache).


Высоту заглавных символов называют "кеглем" (font size). Есть несколько шкал кегля; можно условно считать, что одна единица высоты примерно равна 0,3-0,4 мм. Например, "сделать двенадцатым кеглем" означает, что высота заглавных символов будет примерно 3,6-4,8 мм; "шрифт высотой десять" - 3-4 мм. Предполагается, что на разных мониторах растровые шрифты одинакового размера (в текстовом интерфейсе) выглядят различно; но векторные шрифты одного кегля (в GUI) должны выглядеть одинаково.


На не очень новых мониторах с разрешением около 100 dpi кегль 5 и ниже - неразборчиво мал; для виджетов обычно выбирают кегль 10 или 12.


Шрифты бывают моноширинными (monospace) и пропорциональными (proportional или не указано). "Моноширинный" означает, что все глифы одинаковой ширины, занимают одинаковое место по горизонтали; хотя между соседними символами в линии может быть видно немного свободного пространства (не пробелы), но сдвинуть символы поближе друг к другу не получится. Текстовый интерфейс - традиционно моноширинный. То есть, например, 80 символов в линии (видимой строке); символы выровнены по вертикали (строго друг над другом). В пропорциональном шрифте, например, символы Щ и Л - разной ширины; в линиях одного виджета (например, текстовой области) может умещаться разное число символов.


Основную графическую идею (стиль) шрифта называют "гарнитУрой" (typeface, или font face). Символы одной гарнитуры схожи примерно так же, как инструменты из одного набора или предметы посуды из одного сервиза.


Есть несколько классификаций гарнитур. В простых случаях выделяют "рубленые" шрифты (без засечек, sans serif) - обычно для заголовков или надписей; и шрифты "с засечками" (serif) - обычно для основного текста. ЗасЕчка - небольшой декоративный поперечный штрих на конце черты некоторого символа. "Декоративные" шрифты (в названии может быть script) - имитация письма от руки. Есть шрифты, состоящие разных вспомогательных символов (symbols, dingbats), например, шахматных фигур, маркеров или орнаментов.


Внутри гарнитуры могут быть дополнительные стили - "начертания" (slants); обычно это нормальное начертание (Medium, Normal, Regular или Roman), курсИв[ное] (Italic, или Oblique), жирное/полужирное (Bold/Semibold). Начертания хранят в отдельных файлах; некоторые графические редакторы или офисные текстовые процессоры могут имитировать начертания, имея лишь один файл с нормальным начертанием.


Шрифты в текстовой консоли


Формат файлов шрифтов для текстового режима Linux - PC Screen Font (".psf" или ".psfu"). Здесь u означает Unicode. (Раньше для русского языка были кодировки KOI-8R и CP1251.) Документация по PC Screen Font есть в пакете kbd (/usr/share/doc/kbd/).


Сами файлы шрифтов обычно хранят в /usr/share/consolefonts, /usr/share/syscons/fonts/, /usr/share/kbd/consolefonts или в /usr/share/fonts. Обычно файлы дополнительно сжаты gzip. Размер - несколько КиБ. Файлы, включающие и глифы кириллицы, обычно имеют в имени Cyrillic или сокращённо cyr.


Традиционный шрифт - VGA или Fixed, более новый и приятный для глаз - Terminus. Пример файла шрифта гарнитуры Fixed:


$ cd /usr/share/consolefonts

$ file -z CyrSlav-Fixed16.psf.gz

CyrSlav-Fixed16.psf.gz: Linux/i386 PC Screen Font v1 data, 256 characters, Unicode directory, 8x16 (gzip compressed data, last modified: Wed Feb 1 12:35:37 2017, max compression, from Unix)


В настоящее время текстовая консоль Linux может использовать шрифты в кодировке Unicode (по умолчанию - кодировка CP437 и встроенный в ядро шрифт). В шрифте допустимо 512 глифов; возможно отображение 8 цветов. Или 256 глифов, но 16 цветов. Показать набор символов текущего шрифта (выполнять в текстовой консоли, не в эмуляторе терминала):


$ showconsolefont


Для правильного соответствия глифов кодам Unicode - нужна вспомогательная таблица (translation map, unimap), которая раньше хранилась в отдельном файле, а сейчас может входить в основной файл шрифта (обычно, но не обязательно, с расширением ".psfu"). Таблицы unimaps (".acm" или ".acm.gz") хранят в /usr/share/consoletrans/, /usr/share/unimaps или /usr/share/syscons/scrnmaps/. Программа psfgettable служит для копирования таблицы unimap из шрифта; psfaddtable - для добавления.


Вспомогательные программы для правки шрифтов: nafe (https://sourceforge.net/projects/nafe/), psftools (https://tset.de/psftools/index.html), rw-psf (https://github.com/talamus/rw-psf). Они конвертируют символы в ascii-art (вроде вышеуказанного примера буквы А) или растровые изображения. После правки в текстовом или графическом редакторе можно конвертировать файл обратно в шрифт.


Настройки применения шрифта - файл /etc/default/console-setup или ~/.console-setup.


Применить настройки на текущей консоли:


$ setfont

# или

$ setupcon


Пакеты программ: kbd, console-setup. Документация: man-страницы console-setup, setfont, setupcon. В инсталляциях с systemd может быть файл настроек /etc/vconsole.conf и сервис systemd-vconsole-setup.service. Документация: man-страницы systemd-vconsole-setup.service, vconsole.conf.


Шрифты в графической консоли


Форматы шрифтов для GUI:

Portable Compiled Font (PCF, ".pcf" или сжатый ".pcf.gz"), растровый;

Bitmap Distribution Format (BDF, ".bdf" или сжатый ".bdf.gz"), растровый;

TrueType Font (TTF, ".ttf"), векторный;

OpenType Font (OTF, ".otf"), векторный;

Type 1 PostScript font ASCII (PFA, ".pfa"), векторный;

Type 1 PostScript font binary (PFB, ".pfb"), векторный;

и ещё несколько более редких.


Наиболее популярные форматы: TTF, OTF (и их контейнер для веб-страниц - Web Open Font Format, ".woff"/".woff2").


Размеры файлов - от сотен КиБ до нескольких МиБ или ещё больше; зависит от количества символов (которых могут быть тысячи). Обычно файлы, содержащие латиницу и кириллицу, специально не помечаются. Файлы, содержащие символы восточных языков, содержат в имени указание на язык, например: arabic, thai.


$ cd /usr/share/fonts/truetype/noto

$ file NotoSans-Regular.ttf

NotoSans-Regular.ttf: TrueType font data

$ ls -ks NotoSans-Regular.ttf

300 NotoSans-Regular.ttf


Графическая подсистема X Window System задействует шрифты сама или через библиотеки. X-программа (клиент сервера X Window) может запросить отрисовку шрифта по записи формата X Logical Font Description (XLFD). Запись состоит из 14 полей через дефисы. Пример:


-cronyx-times-medium-i-*-*-14-*-100-100-*-*-iso10646-1


Здесь cronyx - семейство шрифтов, times - гарнитура, medium и i (italic) - начертания, 14 - кегль, 100 - предполагаемые разрешения дисплея по горизонтали и вертикали, iso10646 и следующее поле - кодировка. Остальные поля менее важны; звёздочка является метасимволом и предлагает программе самой выбрать значение поля.


Значения можно подбирать GUI-программой xfontsel. Кнопка select копирует запись в буфер X, откуда её можно вставить в редактор средней кнопкой мыши (колёсиком).


Посмотреть список доступных серверу шрифтов - xlsfonts.

Посмотреть таблицу глифов - xfd (или вообще указать некоторой X-программе использовать заданный шрифт опцией -fn):


$ xfd -fn '-cronyx-times-medium-i-*-*-14-*-100-100-*-*-iso10646-1'


Кодировка iso10646 - одно из названий Unicode. Поддержка Unicode в самой X Window System работает плохо, поэтому сейчас юникодные шрифты обрабатываются отдельными библиотеками. Но желательно иметь хоть какой-то шрифт в одной из кодировок семейства iso8859 или иной - просто для начального запуска сервера X Window.


Настройки применения шрифтов в общем файле /etc/X11/xorg.conf:


Section "Files"

FontPath "/usr/share/fonts/X11/misc"

FontPath "/usr/share/fonts/X11/cyrillic"

# Прочие параметры этой секции...

EndSection


В указанных каталогах следует запустить программы mkfontscale и mkfontdir. В результате должны появиться файлы encodings.dir, fonts.alias, fonts.dir.


Шрифт можно подключить временно, вручную:


# Добавить каталог.

xset +fp /usr/share/fonts/X11/misc

# Перечитать списки шрифтов.

xset fp rehash


Вспомогательная шрифтовая библиотека для GUI - Fontconfig. Она ведёт каталоги установленных в системе шрифтов и предоставляет программам шрифты, подходящие по требованиям. Библиотека Fontconfig сама не занимается растеризацией шрифтов.


К библиотеке прилагается семейство программ fc-*, в том числе:


fc-cache - создать/пересоздать кэш шрифтов;


fc-list - показать список установленных в системе шрифтов (выводится много информации, в том числе поддерживаемые языки). Возможно задать условие, например (вывод сокращён):


# Показать установленные шрифты, имеющие символы русской кириллицы.

$ fc-list -f '%{family}\n' :lang=ru

Liberation Sans

URW Gothic L

URW Palladio L

Noto Sans

DejaVu Sans,DejaVu Sans Light

URW Palladio L

FreeMono

Nimbus Roman No9 L


fc-validate - узнать, есть ли в шрифте символы алфавита для заданного языка, например:


$ cd /usr/share/fonts/truetype/noto

$ fc-validate -l ru NotoSans-Regular.ttf

NotoSans-Regular.ttf:0 Satisfy the coverage for ru language

$ fc-validate -l en NotoSans-Regular.ttf

NotoSans-Regular.ttf:0 Satisfy the coverage for en language

$ fc-validate -l ru NotoKufiArabic-Regular.ttf

NotoKufiArabic-Regular.ttf:0 Missing 66 glyph(s) to satisfy the coverage for ru language

$ fc-validate -l en NotoKufiArabic-Regular.ttf

NotoKufiArabic-Regular.ttf:0 Missing 72 glyph(s) to satisfy the coverage for en language

$ fc-validate -l ar NotoKufiArabic-Regular.ttf

NotoKufiArabic-Regular.ttf:0 Satisfy the coverage for ar language


То есть в основном файле есть символы для русского, английского языков; в файле для арабского языка есть только арабица.


Документация: man-страницы; HTML-документация в /usr/share/doc/fontconfig. Обозначения языков - по RFC-3066/ISO 639.


Основной XML-файл настроек Fontconfig - /etc/fonts/fonts.conf. Документация: man fonts-conf. Там же указаны имена других файлов, например пользовательский ~/.config/fontconfig/fonts.conf (устаревший: ~/.fonts.conf).


Каталоги для хранения шрифтов: общий /usr/share/fonts/, пользовательский ~/.local/share/fonts/ (устаревший: ~/.fonts/). В fonts.conf можно указать другие.


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


Семейства свободно доступных шрифтов, которые считают приятными для глаз: Cantarell, Droid, Noto, Ubuntu. Шрифты со вспомогательными символами: OpenSymbol, Symbola; или Dingbats и Wingdings из Windows.


Для установки шрифта, поддерживаемого Fontconfig, нужно скопировать его файлы в один из каталогов хранения (можно во вложенный каталог). Желательно правильно установить целевые права, например 444 для файлов и 555 для каталогов. Потом запустить fc-cache (может сработать автоматически).


Офисные документы, электронные книги и другие файлы документов/изображений нередко могут хранить внутри себя сами файлы шрифтов (полностью или частично), но часто - содержат только что-то вроде ссылки на имя шрифта. Если скопировать файл документа/изображения на другой компьютер, где нет подходящего шрифта - программа либо покажет пустые/неверные глифы, либо попробует (зависит от программистов) "подставить" хоть какой-то подходящий шрифт (substitute a font). Даже при подстановке вид документа/изображения может быть испорчен из-за того, что размеры глифов в разных шрифтах не совпадают.


Для офисных документов популярны семейства шрифты из Windows: Arial, Courier New, Times и другие (форматы TTF, OTF).


Их можно скопировать из инсталляции Windows (каталог Windows\Fonts\).


В дистрибутивах могут быть пакеты, копирующие файлы шрифтов из Интернета. Помещать сами эти шрифты в пакет запрещено лицензионным соглашением.


Можно скопировать их из Интернета самостоятельно и распаковать программой cabextract. Ищите в репозиториях сервиса SourceForge.net по выражению "Microsoft core fonts".


Для подстановки можно применять шрифты семейства Liberation (соответственно Sans, Mono, Serif). Они, насколько возможно, "метрически совместимы" (metrically compatible) со шрифтами из Windows, то есть глифы сходных размеров. Другие метрически совместимые шрифты:


семейство Croscore (соответственно Arimo, Cousine, Tinos);

[Astra] Sans, [Astra] Serif и Mono от фирмы Paratype;

семейство XO Fonts (Oriel, Courser, Thames, символьные шрифты Symbol и Windy).


В графической подсистеме X Window System растеризацией занимается своя библиотека Xft. В последние годы операции растеризации передаются внешним библиотекам: Cairo, FreeType, Pango. Графическая подсистема Wayland сама никак не взаимодействует со шрифтами, все программы обращаются к внешним библиотекам.


Растеризованные глифы малого кегля могут выглядеть грубо/нечётко. Чтобы улучшить вид, применяют методы отрисовки под общим названием "сглаживание" (anti-aliasing). Иногда сглаженные глифы выглядит отчасти цветными из-за "субпиксельного рендеринга" - то есть дорисованные пикселы не чёрные или серые, а других цветов. Эффект зависит от порядка расположения цветных элементов (субпикселов) в пикселах.


В шрифтах TrueType могут быть дополнительные встроенные данные (hints) по отрисовке; их применение называется "хИнтинг" (hinting). В библиотеке FreeType наилучший алгоритм отрисовки (TrueType Bytecode Interpreter) был запрещён патентами примерно до 2010 года/версии 2.4.


Сглаживание и хинтинг обычно можно указать в центре настроек графической среды. Либо вручную - в своём или общем файле fonts.conf, например (фрагмент):


<!-- Включить сглаживание. -->

<match target="font">

<edit name="antialias" mode="assign">

<bool>true</bool>

</edit>

</match>

<!-- Включить хинтинг. -->

<match target="font">

<edit name="hinting" mode="assign">

<bool>true</bool>

</edit>

</match>

<!-- Полный (максимальный) хинтинг. -->

<match target="font">

<edit name="hintstyle" mode="assign">

<const>hintfull</const>

</edit>

</match>

<!-- Расположение субпикселов. -->

<match target="font">

<edit name="rgba" mode="assign">

<const>rgb</const>

</edit>

</match>


Программы, запрашивающие шрифт, в общем случае не могут рассчитывать на конкретное семейство/гарнитуру. Чтобы получить хоть какой-то подходящий шрифт (подстановка шрифта), обычно объявлены сколько-то псевдонимов (font aliases), например: sans-serif, serif, monospace. Пример для monospace:


<alias>

<family>DejaVu Sans Mono</family>

<default>

<family>monospace</family>

</default>

</alias>

<alias>

<family>monospace</family>

<prefer>

<family>DejaVu Sans Mono</family>

</prefer>

</alias>


Узнать текущий псевдоним:


$ fc-match monospace

DejaVuSansMono.ttf: "DejaVu Sans Mono" "Book"


Программы для GUI:


просмотреть установленные шрифты (+ установить/удалить):

Просмотрщик шрифтов (gnome-font-viewer) для GNOME;

Font Manager (gtk2 + python);

Font Viewer (kfontview и вспомогательный установщик kfontinst) и модуль kcmshell fontinst для KDE;


редактор - FontForge.

Показать полностью

Золото в руде

Мой первый пост, строго не судите. Каким бывает Золото в кварцевой жиле:

Золото в руде Золото, Руда, Моё, Геологи, Длиннопост
Золото в руде Золото, Руда, Моё, Геологи, Длиннопост
Золото в руде Золото, Руда, Моё, Геологи, Длиннопост
Золото в руде Золото, Руда, Моё, Геологи, Длиннопост

На самом деле это уникальные образцы, с содержанием золота до 2-10 кг на тонну руды. Чаще всего многие рудники добывают золото с содержаниями от 0,5 до 10 грамм на тонну и образцы могут выглядеть примерно так:

Золото в руде Золото, Руда, Моё, Геологи, Длиннопост
Золото в руде Золото, Руда, Моё, Геологи, Длиннопост
Золото в руде Золото, Руда, Моё, Геологи, Длиннопост
Золото в руде Золото, Руда, Моё, Геологи, Длиннопост

А это самородки в коренных породах, встречаются очень редко, отличие от самородков россыпного золота в том, что углы и грани неокатанные:

Золото в руде Золото, Руда, Моё, Геологи, Длиннопост
Золото в руде Золото, Руда, Моё, Геологи, Длиннопост
Золото в руде Золото, Руда, Моё, Геологи, Длиннопост
Золото в руде Золото, Руда, Моё, Геологи, Длиннопост

Так выглядит свежевыплавленный слиток золота (сплав ДОРэ):

Золото в руде Золото, Руда, Моё, Геологи, Длиннопост
Золото в руде Золото, Руда, Моё, Геологи, Длиннопост

А вот так могут подделывать золото. Слиток тяжелого металлы как бы оборачивают в толстую фольгу из золота:

Золото в руде Золото, Руда, Моё, Геологи, Длиннопост
Золото в руде Золото, Руда, Моё, Геологи, Длиннопост
Золото в руде Золото, Руда, Моё, Геологи, Длиннопост
Золото в руде Золото, Руда, Моё, Геологи, Длиннопост

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

Показать полностью 18

Готовы к Евро-2024? А ну-ка, проверим!

Для всех поклонников футбола Hisense подготовил крутой конкурс в соцсетях. Попытайте удачу, чтобы получить классный мерч и технику от глобального партнера чемпионата.

А если не любите полагаться на случай и сразу отправляетесь за техникой Hisense, не прячьте далеко чек. Загрузите на сайт и получите подписку на Wink на 3 месяца в подарок.

Готовы к Евро-2024? А ну-ка, проверим! Футбол, Тест, Евро 2024, Болельщики, ВКонтакте (ссылка)

Реклама ООО «Горенье БТ», ИНН: 7704722037

Развод на маркете

Всем привет.

Заказал на через яндекс маркет в чудесном магазине pda умную лампу xiaomi philips eyecare smart lamp 2

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

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

чек меня удивил в графе цена стояло 10 а в количестве 319, хотя стоимость лампы 2900 и доставка 290.

Достал лампу, снял пакет, подключил блок питания, включил в сеть и у сенсорных кнопок обнаружил трещину. На гарантийном талоне ссылка pdaphones.ru и номер телефона, позвонил в магазин сказали оставить через сайт заявку, оставил, реакции ноль.

через яндекс маркет написал в магазин ответили что это не их проблема и что б я обращался к курьерам.

подскажите куда писать.

Развод на маркете Развод, Обман, Сервис, Длиннопост
Развод на маркете Развод, Обман, Сервис, Длиннопост
Показать полностью 2
Мои подписки
Подписывайтесь на интересные вам теги, сообщества, авторов — и читайте свои любимые темы в этой ленте.
Чтобы добавить подписку, нужно авторизоваться.

Отличная работа, все прочитано! Выберите