Можно ли разделить шрифт Unicode, такой как Arial Unicode, на определенный языковой блок (например, тайский)?

Я работаю с приложением пользовательского интерфейса и пытаюсь реализовать различные языки. Проблема в том, что отображение текста поддерживает только 256-символьные шрифты, которые импортируются в инструмент шрифта. Инструмент «Шрифт» принимает каждый символ и преобразует его в специальный BMP-файл, который устройство может использовать в качестве текста.

Моя проблема в том, что мне нужен конкретный язык из шрифта Arial Unicode. Например, я хочу взять все символы тайского языка из Arial Unicode и разделить их на специальный тайский шрифт (максимум 256 символов), чтобы я мог загрузить его в программу и преобразовать.

Это возможно?

Спасибо Майк


person Mike    schedule 07.01.2011    source источник
comment
Эта проблема была решена в основных операционных системах около 10 с лишним лет назад. Что, черт возьми, ты бежишь, чтобы разобраться с этим?   -  person Hans Passant    schedule 08.01.2011
comment
Ну, я работаю над устройством с сенсорным экраном под названием 4d labs picasso. Это сенсорный ЖК-экран со встроенным графическим управлением и виртуальным движком с похожим на c языком под названием 4dgl. У него есть некоторые недостатки, и один из них - поддержка без Unicode, поэтому я работаю с 256-символьными шрифтами.   -  person Mike    schedule 08.01.2011
comment
Для китайского и японского языков требуется намного больше 256 символов. Для арабского языка и иврита требуется сложный порядок чтения (подумайте о смешанном чтении справа налево и слева направо). Арабские буквы выглядят по-разному в зависимости от их положения в слове. Хинди и телугу используют чрезвычайно сложные замены глифов и композиции глифов (рисование субглифов друг над другом или с небольшим сдвигом), для которых требуются функции формата шрифтов OpenType. Все они разработаны в таких библиотеках, как Pango и D-Type. Если на вашей платформе нет компилятора C, Pango не поможет.   -  person Tamas Demjen    schedule 08.01.2011


Ответы (2)


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

Также вы можете декомпилировать шрифт TTF с помощью TTX, отредактировать его как обычный текст и перекомпилируйте снова. Это имеет то преимущество, что его легко написать по сценарию.

person liori    schedule 08.01.2011

Да, это возможно, но это может быть не очень практично.

Как указала Лиори, FontForge и TTX - два возможных инструмента, которые вы можете использовать.

Однако Arial Unicode - монстр шрифта; У меня случился сбой TTX, когда я попытался декомпилировать 5-6-мегабайтные ttf-шрифты, поэтому я не думаю, что он будет работать с Arial Unicode. Я полагаю, что удаление ненужных глифов с помощью FontForge также будет утомительным.

Вместо того, чтобы пытаться извлечь глифы из Arial Unicode, я думаю, что лучший способ - просто использовать вместо этого небольшие шрифты ttf, специфичные для скриптов.

person wschang    schedule 12.07.2011