| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Visual C++/MFC/WTL > Шрифт TrueType определенного размера |
| Автор: Dreamer_0x01 16.11.2005, 18:12 |
| нужно получить битовую маску нужных мне символов выбранного мной шрифта. Пока что думаю сделать следующим образом: 1. Нарисовать нужный мне символ в прямоугольнике определенного размера (мне надо 8х16). 2. Oбработать посимвольно каждый пиксел функцией GetPixel(), проставляя соответственно в битовой маске нули и единицы.. так поступить с каждым символом. Но может быть, есть какие-то стандартные методы? |
| Автор: Earnest 16.11.2005, 20:25 | ||
| Да уж, GetPixel у DC спрашивать - не самый лучший путь (медленно - жуть!). Вариант 1. Прорисовать как ты сказал, но в memory context + свой Bitmap, а потом сразу попросить все биты (GetBitmapBits). Вариант 2 ( для продвинутых). См. GetGlyphOutline:
Т.е. прямо можно получить битмап для символа. |
| Автор: Dreamer_0x01 16.11.2005, 20:47 | ||||
Это пофигу, операция выполняется только один раз для каждого символа кодовой таблицы при запуске программы, и все.
А что отом с этим битмапом делать? Как его "расшифровать"? Мне собственно что нужно... Допустим, есть символ, вписанный в прямоугольник 8х8; нужно заполнить массив типа unsigned short Ar[8]={ 0x00FF,//вся строка черная 0x00FF,//вся строка черная 0x00FF,//вся строка черная 0x00C3,//в центре 4 пробела 0x00C3,//в центре 4 пробела 0x00FF,//вся строка черная 0x00FF,//вся строка черная 0x00FF,//вся строка черная } где элементы массива означают строки в битовой маске, а биты в элементах - точки в строках (В данном примере это будет небольшое пятно в центре битовой маски). |
| Автор: Earnest 17.11.2005, 19:46 | ||
| Битмап (черно-белый) и есть битовая маска, которая тебе нужна. Учти только, что строки в битмапе должны быть выровнены на WORD. Размер выровненной строки вычисляется так:
Соответственно, размер буфера под биты = размер строки * высота. |
| Автор: Dreamer_0x01 17.11.2005, 20:24 |
| Я понимаю, что битовая маска, но она будет "чистая", или как и файл bmp, содержать в каких-то первых строках служебную информацию? |
| Автор: Earnest 17.11.2005, 20:44 |
| Биты, которые ты получаешь с помощью GetBitmapBits - это ровно содержание, т.е. нужная тебе маска, нет там никакого заголовка. |