MBTY
- Longevity: 9 years 2 months
- Posts: 86
- REPUTATION:9[+] [-]
|
Всем нам известно, что G4D не поддерживает кириллицу, а потому все мы дополнительно используем unicode шрифт. Либо его оригинал (Unifont) на много килобайт либо урезанную версию только с кириллицей на 3кб. Править этот шрифт очень сложно, потому что хз как это делать. Но недавно мне пришлось постичь эту науку, теперь делюсь познаниями + утилиткой, которую создал, чтобы не съехала кукушка при переводе буквы в длинный HEX код - Glyph 2 HEX 1) Нам интересно перерисовать букву Ж 2) Открываем файл шрифтов и видим что-то вроде:Этого..................................... 0413:0000FE6662606060606060F000000000 0414:00001E3666666666666666FFC3810000 0415:0000FE6662687868606266FE00000000 0416:0000DBDB5A5A7E7E5ADBDBDB00000000 0417:00007CC606063C060606C67C00000000 0418:0000C6C6C6CEDEF6E6C6C6C600000000 ..................................... 3) Лезем на сайт https://www.compart.com/en/unicode и вбиваем там в поиске Ж. Узнаём, что код нашей буквы - 0416 4) Берем только жирный текст из строки 0416:0000DBDB5A5A7E7E5ADBDBDB00000000 5) Вставляем его в самую верхнюю строку Glyph 2 HEX и жмем VVVVV. 6) Получив это правим букву как хотим. 7) После рисования получаем вот что 8) Вверху хранится строка оригинала - она правится юзером по желанию - по сути она для импорта в программу. Внизу - строка с кодом нарисованной в окне буквы. Вот нижнюю строку копируем в файл шрифта G4D на место оригинального символа. 9) Было 0416:0000DBDB5A5A7E7E5ADBDBDB00000000, а стало 0416:00DBDBDBDBDB5A3C3C5ADBDBDBDBDB00. Сохраняем, проверяем. Было. Стало. * В ходе всей работы было еще выявлено, что файл шрифтов должен закачиваться пустой строкой.Неправильно044D:00000000007CC6063E06C67C00000000 044E:0000000000CEDBDBFBDBDBCE00000000 044F:00000000007FC6C67E3666E700000000 0451:0000006C007CC6C6FCC0C67C00000000Правильно044D:00000000007CC6063E06C67C00000000 044E:0000000000CEDBDBFBDBDBCE00000000 044F:00000000007FC6C67E3666E700000000 0451:0000006C007CC6C6FCC0C67C00000000 * Сайт https://www.compart.com/en/unicode/ можно заюзать в обратную сторону. Стало интересно, что за символ под кодом 042F - правим ссылку на httрs://www.compart.com/en/unicode/U+042F-Скачать Glyph 2 HEX
|
MBTY
- Longevity: 9 years 2 months
- Posts: 86
- REPUTATION:9[+] [-]
|
Верхняя строка (код оригинали) она и для импорта и для сохранения оригинала. Запихнули оригинальную букву, нажали VVVVV, запороли - не беда. Снова жмём VVVVV и грузится картинка до того как всё запоролось. Вообще, если рисуем шрифт "с нуля", то верхняя строка и не используется. Ну и из неочевидного - для быстрой очистки "рисунка" в верхней строке можно вбить "0" и "VVVVV" - это приведет к очистке всего поля рисования
|
Отправлено: 05-Oct-2020 11:27
(after 4 years 2 months)
AZJIO
- Longevity: 6 years 9 months
- Posts: 1323
- REPUTATION:127[+] [-]
|
Попробовал сделать копию программы на PureBasic, скачать (исходник в комплекте).
Last edited by AZJIO on 2021-01-29 16:39; edited 1 time in total
|
AZJIO
- Longevity: 6 years 9 months
- Posts: 1323
- REPUTATION:127[+] [-]
|
Добавил бледную сетку. Исправил "Вставить" (вставляло перевёрнутым) Добавил "Предпросмотр". В исходнике в строке 5 можно задать размер клетки от 18 до 55. И попробуйте 00000000925438545492000000000000 Добавил "Открыть", открывает *.png,*.bmp и рисует их на холсте. То есть можно в графическом редакторе нарезать буквы и импортировать в код.
|
AZJIO
- Longevity: 6 years 9 months
- Posts: 1323
- REPUTATION:127[+] [-]
|
Добавил импорт символа шрифта просто выбрав шрифт. Добавлена возможность генерировать алфавит в коды
|
Отправлено: 10-Oct-2020 20:30
(after 2 days 23 hours)
AZJIO
- Longevity: 6 years 9 months
- Posts: 1323
- REPUTATION:127[+] [-]
|
В общем решил потестировать, увидев пример в menu.lst в версии 0.4.6a, там есть следующие строки5173:10100810082000003FF8010001000100FFFE010002800280044008203018C006 542F:010000801FFC1004100410041FFC10001000100017FC24042404440487FC0404 673A:100011F011101110FD10111031103910551055109110111211121212120E1400 91CD:001000F83F000100FFFE01001FF011101FF011101FF001003FF80100FFFE0000 Удивило что число символов 64, вместо 32. Взял именно версию 0.4.6a (grldr), запустил в эмуляторе "WinSetupFromUSB-1-9" получаю пустую строку вместо слова "тест". Попробовал сделал пункт "А" вместо 91CD прописал 0410, то есть вместо "А" должен был появится иероглиф из примера, но опять не произошло. Есть идеи?
|
AZJIO
- Longevity: 6 years 9 months
- Posts: 1323
- REPUTATION:127[+] [-]
|
Gvint64, я думаю Grub4Dos ничего не знает о кириллице или иероглифе, у него есть код символа и таблица-битмап, как его отображать. Если Grub4Dos может воспринимать битмап 32 или 64, значит мы автоматически можем задать шрифт в лучшем качестве, больше пиксел на букву, но опять же если это влияет только на ширину, мы можем задать более широкие символы (Verdana-широкие, Arial Narrow - узкий). Но если у нас кодировка 1251, как Grub4Dos узнает, что этот символ "А" с кодом ANSI отличающимся от аналогичного кода в таблице Юникода, чтобы его заменить битмапом, вроде как на загрузке он должен определять. На всякий случай пробую сохранить меню (menu.lst) в юникод 16LE (стандартный юникод для Windows) и он его не видит. Тут же тестирую в UTF-8 и он видит букву "А", но не с битмапа Но ради этого не думаю что откажусь от версии 0.4.4, потому что новая дольше загружается. Надо разобраться что поддерживает та и другая. 0.4.4 также видит UTF-8
|
Gvint64
- Longevity: 4 years 6 months
- Posts: 625
- REPUTATION:72[+] [-]
|
AZJIO, По этому методу пробовал и impact и segoeui и т.д. - 16x16 и 20x20 ...Шрифт 8x16
Вариант шрифта 8x16 для вставки в Menu.lst в UTF-8. graphicsmodedefault 0 #режимы 640x480 и 800x600 graphicsmode -1 640:800 480:600 24:32 #шрифт встроен в тему gfx gfxmenu /gfx/flash_gfx.gz #font /fonts/unifont.hex.gz #текст/фон курсор/фон низ/фон верх/фон color yellow/black yellow/red light-cyan/black light-green/black #картинка *.bmp сжата в gz splashimage /img/ikesima.gz title .... .... .... 0030:00007CC6C6CED6E6C6C6C67C00000000 004D:0000C6EEFEFED6C6C6C6C6C600000000 0054:00007E7E5A1818181818183C00000000 0056:0000C6C6C6C6C6C6C66C381000000000 0057:0000C6C6C6C6D6D6D6FEEE6C00000000 0058:0000C6C66C7C38387C6CC6C600000000 0059:0000666666663C181818183C00000000 005A:0000FEC6860C183060C2C6FE00000000 006D:0000000000ECFED6D6D6D6C600000000 0076:0000000000C6C6C6C6C66C3800000000 0077:0000000000C6C6D6D6D6FE6C00000000 0078:0000000000C66C3838386CC600000000 007C:00001818181818181818181800000000 0401:6C00FE6662687868606266FE00000000 0410:00001E3666C6C6FEC6C6C6C600000000 0411:0000FE6260607C66666666FC00000000 0412:0000FC6666667C66666666FC00000000 0413:0000FE6662606060606060F000000000 0414:00001E3666666666666666FFC3810000 0415:0000FE6662687868606266FE00000000 0416:0000DBDB5A5A7E7E5ADBDBDB00000000 0417:00007CC606063C060606C67C00000000 0418:0000C6C6C6CEDEF6E6C6C6C600000000 0419:6C38C6C6C6CEDEF6E6C6C6C600000000 041A:0000E6666C6C78786C6C66E600000000 041B:00001F3666666666666666CF00000000 041C:0000C6EEFEFED6C6C6C6C6C600000000 041D:0000C6C6C6C6FEC6C6C6C6C600000000 041E:00007CC6C6C6C6C6C6C6C67C00000000 041F:0000FEC6C6C6C6C6C6C6C6C600000000 0420:0000FC666666667C606060F000000000 0421:00007CC6C6C0C0C0C0C2C67C00000000 0422:0000FFDB991818181818183C00000000 0423:0000C6C6C6C6C67E0606C67C00000000 0424:00007EDBDBDBDBDBDB7E183C00000000 0425:0000C6C66C7C38387C6CC6C600000000 0426:0000C6C6C6C6C6C6C6C6C6FF03030000 0427:0000C6C6C6C6C67E0606060600000000 0428:0000D6D6D6D6D6D6D6D6D6FE00000000 0429:0000D6D6D6D6D6D6D6D6D6FE03030000 042A:0000F8F0B0303E333333337E00000000 042B:0000C3C3C3C3F3DBDBDBDBF300000000 042C:0000F06060607C66666666FC00000000 042D:00007CC606263E260606C67C00000000 042E:0000CEDBDBDBFBDBDBDBDBCE00000000 042F:00003F6666663E3E666666E700000000 0430:0000000000780C7CCCCCCC7600000000 0431:0002067CC0C0FCC6C6C6C67C00000000 0432:0000000000FC66667C6666FC00000000 0433:0000000000FE6262606060F000000000 0434:00000000001E3666666666FFC3C30000 0435:00000000007CC6C6FEC0C67C00000000 0436:0000000000D6D6547C54D6D600000000 0437:00000000007CC6063C06C67C00000000 0438:0000000000C6C6CED6E6C6C600000000 0439:0000006C38C6C6CED6E6C6C600000000 043A:0000000000E66C78786C66E600000000 043B:00000000001E3666666666E600000000 043C:0000000000C6EEFEFED6D6C600000000 043D:0000000000C6C6C6FEC6C6C600000000 043E:00000000007CC6C6C6C6C67C00000000 043F:0000000000FEC6C6C6C6C6C600000000 0440:0000000000DC66666666667C6060F000 0441:00000000007CC6C0C0C0C67C00000000 0442:00000000007E5A181818183C00000000 0443:0000000000C6C6C6C6C67E0606C67C00 0444:0000003C187EDBDBDBDBDB7E18183C00 0445:0000000000C66C3838386CC600000000 0446:0000000000C6C6C6C6C6C6FF03030000 0447:0000000000C6C6C6C67E060600000000 0448:0000000000D6D6D6D6D6D6FE00000000 0449:0000000000D6D6D6D6D6D6FE03030000 044A:0000000000F8B0B03E33337E00000000 044B:0000000000C6C6C6F6DEDEF600000000 044C:0000000000F060607C6666FC00000000 044D:00000000007CC6063E06C67C00000000 044E:0000000000CEDBDBFBDBDBCE00000000 044F:00000000007FC6C67E3666E700000000 0451:0000006C007CC6C6FCC0C67C00000000
Last edited by Gvint64 on 2020-10-25 20:25; edited 38 times in total
|
Отправлено: 11-Oct-2020 09:24
(after 1 hour 14 minutes)
AZJIO
- Longevity: 6 years 9 months
- Posts: 1323
- REPUTATION:127[+] [-]
|
Gvint64, ну да, если использовать тему gfxboot. Как я понял пример шрифта в MENU.LST должен поддерживаться без gfxboot, например тема упала, или сбой загрузки возвращает в неграфический режим. Вообще я писал утилиту выше, но не пробовал её использовать в Grub4Dos. Если у автора работает, мне интересен именно вариант, предложенный автором темы. Я именно взял архив Grub4Dos версии 0.4.6a в котором был пример. Разобрался, у меня же gfxboot используется, отключил и всё заработало. Но надо использовать graphicsmode из примера. И пока что с пунктами что-то не то, курсор перепрыгивает через эти пункты нарисованные шрифтом.
Last edited by AZJIO on 2020-10-11 09:34; edited 1 time in total
|
Gvint64
- Longevity: 4 years 6 months
- Posts: 625
- REPUTATION:72[+] [-]
|
80814тема упала, или сбой загрузки Думаю в menu.lst можно попробовать совместить методы - к графическому добавить текстовый. Если упал графический подхватывается текстовый. Шрифт в сообщении выше.
|
Current time is: 03-Dec 14:33
All times are UTC + 3
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
|
|