1. Друзья, в это тяжёлое и непонятное для всех нас время мы просим вас воздержаться от любых упоминаний политики на форуме, - этим ситуации не поможешь, а только возникнут ненужные ссоры и обиды. Это касается также шуток и юмора на тему конфликта. Пусть войны будут только виртуальными, а политики решают разногласия дипломатическим путём. С уважением, администрация Old-Games.RU.

    Скрыть объявление
  2. Пожалуйста, внимательно прочитайте правила раздела.
  3. Если Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление

Помогите отредактировать шрифты

Тема в разделе "Мастерская", создана пользователем Scorp, 25 дек 2014.

  1. Scorp Никто и звать меня никак

    Scorp

    Регистрация:
    21 апр 2005
    Сообщения:
    2.955
    Ну точнее сначала наверное сконвертить во что-то удобочитаемое.

    Шрифты вот: http://logtech.ru/fonts.7z

    Только это, если там что-то очевидное, то сразу картинки давайте, как и чем конвертить.
     
  2.  
  3. Steel Rat Stainless

    Steel Rat

    Регистрация:
    28 дек 2006
    Сообщения:
    3.260
    Они не сжаты. Вообще никак. Но прогу писать надо.
    Тут мог бы помочь UTT. Я вот только не помню, доделал ли я функционал экспорта? Если да, то понадобится только Lua.
    upd: Хотя вообще не сжаты - это похоже я поторопился. Такое ощущение, что отдельные блоки являются однобитными, а отдельные таки сжаты.
     
    Последнее редактирование: 25 дек 2014
  4. Scorp Никто и звать меня никак

    Scorp

    Регистрация:
    21 апр 2005
    Сообщения:
    2.955
    У меня такое впечатление, что они как-то смешаны с палитрой. Они не могут быть однобитными, потому что шрифт там такой вот: http://logtech.ru/ULJM05437_00004.jpg http://logtech.ru/ULJM05437_00005.jpg Должно быть как минимум 3 цвета - маска, контур и сам символ. Ну это всё как мне кажется. Еще там наверняка разные шрифты, разных размеров.
     
    Последнее редактирование: 26 дек 2014
  5. Steel Rat Stainless

    Steel Rat

    Регистрация:
    28 дек 2006
    Сообщения:
    3.260
    А блин, кетай. Ну тогда они не сжаты. GBS пробовал? Боюсь, поможет.
     
  6. Scorp Никто и звать меня никак

    Scorp

    Регистрация:
    21 апр 2005
    Сообщения:
    2.955
    Пробовал, у меня не получилось. Там есть еще хедер, насколько я понял, байт 30 в начале, и там указало сколько символов (получается что 8192 и где 128 байт на символ). Но у меня какая-то каша из этих данных получается, а не символы.

    В общем пробовал Crystal Tile 2: http://logtech.ru/font.png
    Получилось, что они каким-то образом запихнули по 2 символа в один. И видимо потом как-то меняют палитры, в итоге показывается то один символ, то другой. Как это раздраконить и редактировать - у меня чета идей нет.

    Внимание вопрос - кто-нибудь видит палитру внутри файлов? Я чет видимо нет.
     
    Последнее редактирование: 29 дек 2014
  7. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Прикольно. Похоже, что в каждом байте часть бит (на глаз - по маске 0x33) отвечает за пиксел к первому символу, часть (опять же на глаз - по маске 0xCC) - ко второму.

    Upd. Получается, таки да!
    На скорую лапу набросал программку, которая из исходного шрифтового файла (задаётся параметром в командной строке) делает два: <имяфайла>.001 отфильтровывается по первой маске, <имяфайла>.002 - по второй. Во вложении - бинарник и исходники программы (fntsplit.exe, fntsplit.c, fntsplit.dsp) и результаты обработки ею шрифтового файла FONT00.FOP.lzd.

    Upd2. Совсем провтыкал: после разборки и редактирования надо ж собрать обратно. Добавил ещё одну программку - fntjoin, с обратным действием: получив в командной строке <имяфайла>, считывает файлы <имяфайла>.001 и <имяфайла>.002, объединяет их побитовым ИЛИ и записывает в файл <имяфайла>.new.

    Само собой, ни та ни другая программы не делают никаких предположений насчёт какие байты соответствуют пикселам, а какие служебностям (коды, смещения и т.д.): одна тупо делит каждый байт на половинки, другая столь же тупо склеивает обратно.
     

    Вложения:

    • fntsplit.7z
      Размер файла:
      297,5 КБ
      Просмотров:
      40
    Последнее редактирование: 3 янв 2015
  8. Scorp Никто и звать меня никак

    Scorp

    Регистрация:
    21 апр 2005
    Сообщения:
    2.955
    Вообще это неактуально на самом деле, я просто на выходных не написал, всё уже разобрано :) Формат (шрифта) такой - первые 2 бита - пиксель в 1 символе, вторые 2 бита - пиксель во втором, третьи - второй пиксель в 1 символе и 4 - второй пиксель во втором. То есть символы размером 32x16, но последние 8 байт не используются. В начале файла там имеется таблица для всех символов ширины и отступов (шрифт пропорциональный). В итоге получается вот такое: http://logtech.ru/image.gif удобное для редактирования.

    Так что спасибо, но уже не надо :) Да и толку-то мне от отделенных байтов было бы? Надо конвертор в какую-нибудь картинку делать было, чтобы редактировать было возможно, и запихиватель назад. Ну я это уже сам написал, как выше показал.
     
    Последнее редактирование: 13 янв 2015
    Рыжий Тигра, Dimouse, Bato-San и ещё 1-му нравится это.
  9. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Ага. Белый, чёрный и два полутона. Логично.
    Ага. А смещения к самим символам фиксированные или отдельной таблицей? У меня был шрифт с отдельным массивом смещений, то я придумал вот такую штуку: http://www.old-games.ru/forum/showthread.php?p=1074028#post1074028 - сэкономила почти половину "добавки".
    И второй трюк может пригодиться - "плакатный шрифт" для кернинга или иных, гм, выразительностей (рамки, подсветка букв на кнопках и т.д.): http://www.old-games.ru/forum/showthread.php?t=62593. И свои придумки интересные тоже туда кидай, если не жалко. :-)
     
  10. Scorp Никто и звать меня никак

    Scorp

    Регистрация:
    21 апр 2005
    Сообщения:
    2.955
    Там в начале файла хедер, там указывается смещение к символам в 0x10. На картинке шрифта зеленое - отступ слева, черное - ширина символа (то есть запихиватель сам потом посчитает пропорциональность на основе картинки). Там 8192 символа, причем и русский есть полный, и английский (аж в двух версиях), ну ты сам посмотри картинку. Так что мне ничего придумывать не надо, игра сама утолщает глифы когда надо, используя те же самые глифы (то есть программно).
     
    Последнее редактирование: 14 янв 2015
    Рыжий Тигра нравится это.
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление