Работа со шрифтами
От: KisHel  
Дата: 25.01.03 14:37
Оценка:
Как можно получить характеристики букв (например ширину символа) если известны размер, фонт, жирность и д.р. стандартные характеристики шрифта. Как соотносится высота и ширина символа. Можно ли определить букву и хар-ки шрифта по битовой карте (по изображению). Каков формат файлов встроенных шрифтов (*.ttf, *.fon).

25.01.03 21:21: Перенесено из 'C/C++'
Re: Работа со шрифтами
От: Michael Chelnokov Украина  
Дата: 26.01.03 09:49
Оценка:
Здравствуйте, KisHel, Вы писали:

KH>Как можно получить характеристики букв (например ширину символа) если известны размер, фонт, жирность и д.р. стандартные характеристики шрифта.


Например, выбрать этот фонт в DC и сделать DrawText(DT_CALCRECT).
А вообще-то просто посмотри в MSDN раздел "Fonts and Text" и найдешь ответы на все свои вопросы.

KH>Как соотносится высота и ширина символа.


По-разному...
"Размер" фонта — это и есть "высота". Т.е. расстояние от низа, скажем, буквы "g" до верха буквы "M". С шириной несколько сложнее. Смотри в сторону функций GetCharWidth32 и GetCharABCWidths (что такое ABC, красиво нарисовано в том же разделе MSDN).

KH>Можно ли определить букву и хар-ки шрифта по битовой карте (по изображению).


Это не серьезно. Если, конечно, ты не OCR делаешь...
Re: Работа со шрифтами
От: Dwarf Россия dwarf.h1.ru
Дата: 26.01.03 09:50
Оценка:
Здравствуйте, KisHel, Вы писали:

KH>Как можно получить характеристики букв (например ширину символа) если известны размер, фонт, жирность и д.р. стандартные характеристики шрифта. Как соотносится высота и ширина символа. Можно ли определить букву и хар-ки шрифта по битовой карте (по изображению). Каков формат файлов встроенных шрифтов (*.ttf, *.fon).

GetTextMetrix


Или около того
Народу не нужны нездоровые сенсации. Народу нужны здоровые сенсации! (с) Стругацкие.
Re: Работа со шрифтами
От: Кодт Россия  
Дата: 26.01.03 16:01
Оценка:
Здравствуйте, KisHel, Вы писали:

Каков формат файлов встроенных шрифтов (*.ttf, *.fon).

Ищи информацию по шрифтам TrueType/OpenType (ttf)
Есть open source библиотеки...
Перекуём баги на фичи!
Re: Работа со шрифтами
От: _wqwa США  
Дата: 27.01.03 15:30
Оценка:
Здравствуйте, KisHel, Вы писали:

KH>Как можно получить характеристики букв (например ширину символа) если известны размер, фонт, жирность и д.р. стандартные характеристики шрифта. Как соотносится высота и ширина символа. Можно ли определить букву и хар-ки шрифта по битовой карте (по изображению). Каков формат файлов встроенных шрифтов (*.ttf, *.fon).


Уточни вопрос.
В Виндовс -- одни шрифты, в КДЕ -- другие, а куча ГУИ-библиотек реализовывает собственные интерфейсы работы и с теми, и с другими.
... << RSDN@Home 1.0 beta 5 >>
Кто здесь?!
Re[2]: Работа со шрифтами
От: KisHel  
Дата: 28.01.03 15:18
Оценка:
Здравствуйте, _wqwa, Вы писали:

W>Здравствуйте, KisHel, Вы писали:


KH>>Как можно получить характеристики букв (например ширину символа) если известны размер, фонт, жирность и д.р. стандартные характеристики шрифта. Как соотносится высота и ширина символа. Можно ли определить букву и хар-ки шрифта по битовой карте (по изображению). Каков формат файлов встроенных шрифтов (*.ttf, *.fon).


W>Уточни вопрос.

W>В Виндовс -- одни шрифты, в КДЕ -- другие, а куча ГУИ-библиотек реализовывает собственные интерфейсы работы и с теми, и с другими.

Обрисую проблему. Необходимо написать конвертер с PCL. При выводе буквы курсор сдвигается на ширину символа (если шрифт не фиксированный), для определения его положения вижу только один выход суммировать ширину всех выводимых символов (для этого надо ее конечно знать). В PCL есть возможность ассоциировать буквам изображение (обычно используется для шрифтов неподдерживаемых принтером) и писать слова изображениями. Возникает большая проблема — как получить текст.
Re[3]: Работа со шрифтами
От: Patalog Россия  
Дата: 29.01.03 09:16
Оценка:
Здравствуйте, KisHel, Вы писали:

[]

KH> Обрисую проблему. Необходимо написать конвертер с PCL. При выводе буквы курсор сдвигается на ширину символа (если шрифт не фиксированный), для определения его положения вижу только один выход суммировать ширину всех выводимых символов (для этого надо ее конечно знать). В PCL есть возможность ассоциировать буквам изображение (обычно используется для шрифтов неподдерживаемых принтером) и писать слова изображениями. Возникает большая проблема — как получить текст.


Хм, что то не совсем понятно. Что значит "ассоциировать буквам изображение"? Имеется в виду загружаемый шрифт типа PCL Bitmapped Font?
Дык там вроде езть Format 0 Font Header, где наличиствуют поля Cell Width, Cell Height, Height... и иже с ними.
Кроме того, езть Character Descriptor for PCL Bitmap Fonts, где езть Character Width и Character Height конкретного символа.

А текст ежели мне не изменяет склероз выводиться просто "текстом" либо коммандой LB. И в том и вдругом случае имеет место просто набор кодов которые выводяться текущим выбранным шрифтом. А код сей ассоциируется с "каринкой" (в данном случае с Character Descriptor and Data) команндой Esc* c # E, хде # — код символа. Например,

Esc*c112E (112 is the decimal character code for an ASCII lower-case \p")

Почетный кавалер ордена Совка.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.