MBTY
- Стаж: 9 лет 1 месяц
- Сообщений: 86
- Репутация: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
- Стаж: 9 лет 1 месяц
- Сообщений: 86
- Репутация:9[+] [-]
|
Верхняя строка (код оригинали) она и для импорта и для сохранения оригинала. Запихнули оригинальную букву, нажали VVVVV, запороли - не беда. Снова жмём VVVVV и грузится картинка до того как всё запоролось. Вообще, если рисуем шрифт "с нуля", то верхняя строка и не используется. Ну и из неочевидного - для быстрой очистки "рисунка" в верхней строке можно вбить "0" и "VVVVV" - это приведет к очистке всего поля рисования
|
Отправлено: 05-Окт-2020 11:27
(спустя 4 года 2 месяца)
AZJIO
- Стаж: 6 лет 8 месяцев
- Сообщений: 1320
- Репутация:127[+] [-]
|
Попробовал сделать копию программы на PureBasic, скачать (исходник в комплекте).
Последний раз редактировалось: AZJIO (2021-01-29 16:39), всего редактировалось 1 раз
|
AZJIO
- Стаж: 6 лет 8 месяцев
- Сообщений: 1320
- Репутация:127[+] [-]
|
Добавил импорт символа шрифта просто выбрав шрифт. Добавлена возможность генерировать алфавит в коды
|
Отправлено: 10-Окт-2020 20:30
(спустя 2 дня 23 часа)
AZJIO
- Стаж: 6 лет 8 месяцев
- Сообщений: 1320
- Репутация: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
- Стаж: 6 лет 8 месяцев
- Сообщений: 1320
- Репутация: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
- Стаж: 4 года 5 месяцев
- Сообщений: 617
- Репутация:70[+] [-]
|
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
Последний раз редактировалось: Gvint64 (2020-10-25 20:25), всего редактировалось 38 раз(а)
|
Отправлено: 11-Окт-2020 09:24
(спустя 1 час 14 минут)
AZJIO
- Стаж: 6 лет 8 месяцев
- Сообщений: 1320
- Репутация:127[+] [-]
|
Gvint64, ну да, если использовать тему gfxboot. Как я понял пример шрифта в MENU.LST должен поддерживаться без gfxboot, например тема упала, или сбой загрузки возвращает в неграфический режим. Вообще я писал утилиту выше, но не пробовал её использовать в Grub4Dos. Если у автора работает, мне интересен именно вариант, предложенный автором темы. Я именно взял архив Grub4Dos версии 0.4.6a в котором был пример. Разобрался, у меня же gfxboot используется, отключил и всё заработало. Но надо использовать graphicsmode из примера. И пока что с пунктами что-то не то, курсор перепрыгивает через эти пункты нарисованные шрифтом.
Последний раз редактировалось: AZJIO (2020-10-11 09:34), всего редактировалось 1 раз
|
Gvint64
- Стаж: 4 года 5 месяцев
- Сообщений: 617
- Репутация:70[+] [-]
|
80814тема упала, или сбой загрузки Думаю в menu.lst можно попробовать совместить методы - к графическому добавить текстовый. Если упал графический подхватывается текстовый. Шрифт в сообщении выше.
|
Текущее время: 31-Окт 10:31
Часовой пояс: UTC + 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете прикреплять файлы к сообщениям Вы можете скачивать файлы
|
|