Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Хочу все знать (http://forum.oszone.net/forumdisplay.php?f=23)
-   -   [решено] символ по умолчанию в шрифте (http://forum.oszone.net/showthread.php?t=190634)

pva 08-11-2010 21:20 1538003

символ по умолчанию в шрифте
 
Здравствуйте все. Может не совсем по ту тему форума выбрал, если что, переведите, куда правильно... Вот есть шрифт *.fon, сделанный при помощи Sib Font Editor. Выбираем его в блокноте, открываем файл с нецензурными символами типа \r\n и др. Обычно вместо них должны быть квадраты, а здесь рисуются @ собаки. Вывод: символ по умолчанию можно назначить. Я прав? Как это сделать?

Amigos 09-11-2010 06:55 1538178

Цитата:

Цитата pva
символ по умолчанию можно назначить. »

да
Цитата:

Цитата pva
Как это сделать? »

вас интересует иммено fon шрифты? или ttf ?

pva 09-11-2010 09:36 1538237

Именно FON. Но если про TTF тоже расскажешь - будет более полное и интересное знание :)

Amigos 09-11-2010 11:09 1538313

Цитата:

Цитата pva
если про TTF »

так же как и FON , только программа другая.

общий принцип - шрифт это набор картинок (называются глифы, у fon - растровые, у ttf - векторные) + таблица соответствия "какой глиф для какого unicode буквы использовать"

собственно правка может быть двух видов
- рисовать в нужных глифах
- изменить таблицу соответствия "какой глиф для какого unicode буквы использовать"

для fon удобнее первый вариант.

скрины сделаны в программе BitFonter 3

для к примеру стандартного XP'шного шрифта Fixedsys (файл c:\WINDOWS\Fonts\vgafixr.fon)
умолчальный глиф, который используется для "символа, для которого нет определённого глифа" находится под индексом (произвольный номер глифа, сам по себе ни на что не влияет) 96, напоминает русскую букву "Б" и призван отвечать за юникодный символ afii10051 за номером 0402.
Цитата:


вот иллюстрация его использования в просмотрщике TC - на месте, где у бинарника код не имеет однозначной буквенного соответсвия - используется символ Ђ
Цитата:


редактируем глиф в битфонтере
Цитата:


сохраняем, перезагружаемся.
и теперь в качестве "неизвестного символа" используется не левейший Ђ а квадратик
Цитата:


хотя идеологически это и не верно - с точки зрения системы она хочет показать именно Ђ но из-за прихоти глифорисовальщика показывется квадратик.

не исключено, что для разных fon шрифтов "умолчальный символ" может иметь разное unicode значение, не обязательно afii10051.

В вашем случае в шрифте скорее всего два глифа @ - один "настоящий @" а второй "умолчальный символ"

pva 09-11-2010 14:36 1538464

Так я ведь весь шрифт руками рисовал (256 - 32 глифа), там собака ровно один раз, и она именно на своём месте

вот он

Amigos 09-11-2010 15:25 1538511

Вложений: 1
pva, попробуйте, вроде получилось

на всякий случай пересохраните шрифт через свою программу

pva 09-11-2010 15:38 1538526

архив не открылся :( сделай через зип, пожалуйста

Amigos 09-11-2010 15:43 1538529

Вложений: 1
так то жесть

pva 09-11-2010 15:51 1538532

получилось!! урааа!! :yahoo: Правда файл стал в 1.7 раз больше. Сейчас буду искать 10 отличий. Amigos, БОЛЬШУЩЕЕ спасибо!

pva 09-11-2010 16:44 1538571

Нашёл ещё вот что:
http://support.microsoft.com/kb/65123
Там есть байт, отвечающий за этот самый символ. Обычно он равен 0x78, а у меня был 0x20. Пропатчил - всё стало красиво как в сказке

Amigos 09-11-2010 21:37 1538799

Цитата:

Цитата pva
файл стал в 1.7 раз больше »

скорее всего какая то из особеностей битфонтера.
я тоже замечал, что при пересохранении дефолтных xp'шных fon файлов размер увеличивается, даже если ничего не делать.

и просил
Цитата:

Цитата Amigos
пересохраните шрифт через свою программу »

с целью узнать, не уменьшится ли размер шрифта до оригинального значения.

а для fon файлов размер имеет значение - если размер превышает ≈110 килобайт, XP не может его использовать :(

pva 10-11-2010 19:16 1539477

Он внутри уложил все буквы по 16 бит вместо 8, поэтому размер увеличился. Ресурсы сохранил как 32-битные, а не 16-битные. Ещё у Sib Font Editor-а есть глюк: при сохранении теряется один байт, поэтому все символы сдвигаются вверх на пиксель. Пришлось править вручную. В принципе у меня есть идея как сделать конвертер bmp -> fon (лишённый глюков). Пока острой необходимости нет, да и триал у Sib*** не кончился.

Amigos 10-11-2010 21:00 1539543

pva, я вот стеснялся спросить, а зачем в 2010 году рисовать Fon шрифт?

Цитата:

Цитата pva
уложил все буквы по 16 бит вместо 8 »

ну дык unicode же :)
Цитата:

Цитата pva
Ресурсы сохранил как 32-битные, а не 16-битные. »

получается, что дефолтные fon шрифты в XP тоже в виде 16 битных бинарников, а не 32 битных?

pva 11-11-2010 00:07 1539654

Цитата:

Цитата Amigos
ну дык unicode же »

Не, не коды символов уложил, а рисунки. Т.е. если были рисунки 8x14, то стали 16x14, причём оставшаяся часть закрашена нулевыми битами
Про битность что-то я запутался. Они по ходу дела оба 16-битные.
http://support.microsoft.com/kb/76535

МСДН-у как-то можно вталдычить, что я его по-английски читать хочу, а не машинно-переведённый с китайским акцентом?

Morpheus 11-11-2010 00:31 1539663

Цитата:

Цитата pva
МСДН-у как-то можно вталдычить, что я его по-английски читать хочу, а не машинно-переведённый с китайским акцентом? »

А он-то тут причём? Если речь про MSKB, то наверху странички есть ссылка на смену региона, ставим там США и закрываем браузер. При следующем открытии должен быть инглиш. Куки должны быть включены, там про это написано.


Время: 22:20.

Время: 22:20.
© OSzone.net 2001-