Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
86 / 45 / 11
Регистрация: 20.12.2010
Сообщений: 216
Записей в блоге: 1
1

Работа со шрифтами, битовая интерпритация

11.11.2015, 19:20. Показов 743. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, форумчане. Задача у меня такая. Из стоки qt выделить список букв которые там используются( сам сделаю ). Дальше для каждой буквы из этого списка создать массив с вот такой её интерпретацией:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
// font glyph table
 
это для "Ш"       0x11, 0xDA, 0x01, 0x00,           // width, MSB Offset, LSB offset
это для "Д"        0x0B, 0x22, 0x01, 0x00,           // width, MSB Offset, LSB offset
 
    0x00, 0x00,         //                 
    0x00, 0x00,         //                 
    0x00, 0x00,         //                 
    0x00, 0x00,         //                 
    0x00, 0x00,         //                 
    0x00, 0x00,         //                 
    0x00, 0x00,         //                 
    0x00, 0x00,         //                 
    0x00, 0x00,         //                 
    0x00, 0x00,         //                 
    0xE0, 0x01,         //      ****             1110 0000 и 1 дополнительный символ справа 
    0x80, 0x01,         //        **               1000 0000 и 1 допольнительный справа
    0x40, 0x01,         //       * *       
    0x20, 0x01,         //      *  *       
    0x20, 0x01,         //      *  *       
    0x10, 0x01,         //     *   *       
    0x08, 0x01,         //    *    *       
    0x08, 0x01,         //    *    *       
    0x04, 0x01,         //   *     *       
    0x02, 0x01,         //  *      *       
    0xFF, 0x03,         // **********        1111 1111 и 11 дополнительных справа
    0x01, 0x02,         // *        *      
    0x01, 0x02,         // *        * 
 
 
    0x00, 0x00, 0x00,         //                         
    0x00, 0x00, 0x00,         //                         
    0x00, 0x00, 0x00,         //                         
    0x00, 0x00, 0x00,         //                         
    0x00, 0x00, 0x00,         //                         
    0x00, 0x00, 0x00,         //                         
    0x00, 0x00, 0x00,         //                         
    0x00, 0x00, 0x00,         //                         
    0x00, 0x00, 0x00,         //                         
    0x00, 0x00, 0x00,         //                         
    0x8E, 0xE3, 0x00,         //  ***   ***   ***        
    0x04, 0x41, 0x00,         //   *     *     *         
    0x04, 0x41, 0x00,         //   *     *     *         
    0x04, 0x41, 0x00,         //   *     *     *         
    0x04, 0x41, 0x00,         //   *     *     *         
    0x04, 0x41, 0x00,         //   *     *     *         
    0x04, 0x41, 0x00,         //   *     *     *         
    0x04, 0x41, 0x00,         //   *     *     *         
    0x04, 0x41, 0x00,         //   *     *     *         
    0x04, 0x41, 0x00,         //   *     *     *         
    0xFE, 0xFF, 0x00,         //  ***************        
    0x00, 0x00, 0x00,         //                         
    0x00, 0x00, 0x00,         //
честно говоря я слегка в ступоре, т.к. нужно иметь возможность выбора шрифтов в программе. В голове пусто... какие будут предложения?

p.s. высота массива для каждой буквы, также зависит от выбранного размера шрифта. В данном случае 23 пикселя, что соответствует 9ому шрифту

возможно относительно дополнительных я не прав, но не могу понять как правильно их вообще сюда приплести

в таблице глифов не понято что за вторая колонка

Добавлено через 1 час 25 минут
Мда, видимо не только меня ставит это в тупик...

Добавлено через 1 час 48 минут
Как можно получить из qstring bitmap или pixmap
?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.11.2015, 19:20
Ответы с готовыми решениями:

Битовая работа с переменными
Помогите пожалуйсто Условие такое: Есть 2 переменых float A; int B; Нужно в А по битово...

Работа с шрифтами
Поясните в кратце как работать со шрифтами, какое расширение должен иметь шрифт и нужно ли его...

Работа со шрифтами
Помогите пожалуйста, потребовалось установить удалённо на машинках шрифт, написал скрипт: ...

Работа с шрифтами(полная)
Доброго дня! Как в vb.net можно: получить список системных шрифтов открыть файл шрифта и без...

5
68 / 68 / 17
Регистрация: 20.01.2015
Сообщений: 347
11.11.2015, 19:35 2
QString.toLatin1 в QByteArray, из QByteArray.data в QBitmap через QBitmap.fromData

Но из QString в QByteArray таким образом переведутся не все символы, да и в итоге на выходе поучится фигня. Потому что напрямую преобразовать нельзя в данном случае - нужен алгоритм формирования из буквы некоего символа.

В идеале, как мне представляется, класс, который будет получать QString на входе и иметь некие шаблоны соответствующие буквам. "Создать" массив из рандомной буквы - я хз как.
1
487 / 365 / 93
Регистрация: 10.03.2011
Сообщений: 1,513
Записей в блоге: 5
12.11.2015, 10:38 3
Цитата Сообщение от Skjame Посмотреть сообщение
Как можно получить из qstring bitmap или pixmap
Очевидно, создать QLineEdit или QPlainTextEdit, заполнить текстом и скормить QPainter.
http://stackoverflow.com/quest... ith-colors
0
86 / 45 / 11
Регистрация: 20.12.2010
Сообщений: 216
Записей в блоге: 1
12.11.2015, 12:31  [ТС] 4
icpu, картинка с альфаканалом будет?
0
487 / 365 / 93
Регистрация: 10.03.2011
Сообщений: 1,513
Записей в блоге: 5
12.11.2015, 13:52 5
От настроек виджета зависет. По умолчанию - будет обводка и белый фон.
0
86 / 45 / 11
Регистрация: 20.12.2010
Сообщений: 216
Записей в блоге: 1
12.11.2015, 18:59  [ТС] 6
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    QString onechar = "I";
    QSize mapSize = fm.size( Qt::TextSingleLine, onechar );
 
    QString filename = "sample.bmp";
    QString format = "bmp";
 
    QImage img(mapSize.width()+ 2 , mapSize.height() + 2,QImage::Format_MonoLSB);
    QPainter painter(&img);
    painter.setBrush( QBrush(Qt::white, Qt::SolidPattern ));
    painter.drawRect( 0,0, img.size().width(), img.size().height() );
    QFont serifFont( "Times", 16 );
    painter.setFont( serifFont );
    painter.setPen( Qt::black );
    painter.drawText( 2, 0, mapSize.width(), mapSize.height(),Qt::AlignHCenter, onechar );
    painter.save();
    img.save( filename, format.toAscii() );
    painter.restore();
в img хранится картинка с чёрными на белом фоне буквами
и с помощью img.pixel( int x, int y ) можно достучатся до пикселя и узнать какого он цвета. Пробегаясь построчно, получаем битовое представление( как требовалось )

вообщем, как-то так. Идея делать через виджет - дерьмо.
0
12.11.2015, 18:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.11.2015, 18:59
Помогаю со студенческими работами здесь

Работа со шрифтами - font-face
Доброго времени суток, уважаемые форумчане! Недавно у меня появилась надобность в работе со...

Подписать точки в пространстве (работа со шрифтами)
Имеется задача. В пространстве расположены несколько точек (назовем их A, B, C и D). Самые обычные...

Группы переключателей и работа со шрифтами в ВБА
Здравствуйте! Помогите пожалуйста решить следующую задачу: Необходимо создать 3 вкладки на форме...

графическая интерпритация массива
Private Sub Command1_Click() Dim A(0.15 To 0.22) As Variant For h = 0.15 To 0.22 C = 0.36 B =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru