Есть ли какой-то устоявшийся стандарт хранения пропорциональных шрифтов?
Каким редактором можно их редактировать?
Есть ли где-то коллекции пропорциональных шрифтов?
Заранее спасибо.
Вид для печати
Есть ли какой-то устоявшийся стандарт хранения пропорциональных шрифтов?
Каким редактором можно их редактировать?
Есть ли где-то коллекции пропорциональных шрифтов?
Заранее спасибо.
В одном из zx-review было кое-что на эту тему (номер не упомню).
Для QHTV (http://vtrdos.ru/sbor/QHTS065.ZIP) писал свою печаталку с упором на скорость работы и эффекты.
Формат шрифта простой- экранный формат, в первом байте- ширина символа. В остальных байтах- растр, прижатый к левому краю.
Сорцы http://opensourcezx.untergrund.net/c...ts065_src.html
И всё же, в восьмой или первой строке сделать?
Я тут делаю мини-тулу на php для собственных нужд, чтобы на входе подавать TTF шрифт, набор символов и размер, а на выходе - готовый для использования на ZX файл.
Ну, естественно, такой шрифт после конверсии нужно будет ручками допилить, чтобы получить нормальный результат, но это уже будет кое-что.
Не обращайте внимания, что на PHP - можно скомпилить и в exe как command-line тулу.
---------- Post added at 23:22 ---------- Previous post was at 23:21 ----------
А, еще - как быть с высотой? она любая может быть? иногда ведь неплохо и 16, и 24 иметь.
---------- Post added at 23:26 ---------- Previous post was at 23:22 ----------
ZX-Press подсказывает, что Professional Font Editor пропорциональные шрифты умеет:
http://vtrdos.ru/system/PFE_71.ZIP
Сейчас попробую, что он умеет и как.
---------- Post added at 23:33 ---------- Previous post was at 23:26 ----------
Не похоже, чтоб он умел пропорциональные шрифты.
Честно говоря, я удивлен, что нет устоявшегося стандарта.
>на практике?
На практике, при высоте в 8px, как смотрел шрифты последний раз, получалось, что символов, отличающихся по ширине от основной массы, всего-то около 4-6 штук. Потому наверное для большинства случаев овчинка выделки и не стоит.
Это очень зависит от шрифта. Основное применение - игры и демки, наверное.
Раз готового софта нет, остановлюсь на таком варианте:
Байт ширины, байт высоты, байты изображения символа.
Такой формат позволит использовать шрифты (и отдельные символы) разной высоты. Рассчитываю, что размер особо не вырастет.
---------- Post added at 21:14 ---------- Previous post was at 21:08 ----------
У арт-студии шрифты непропорциональные. В демках, имхо, самое место, чтобы использовать пропорциональные, но насколько я понял, их на ZX готовых особо не было.
Если меня хватит допилить мини-конвертер, то можно будет без особых усилий с PC заготовки шрифтов брать, допиливать их ручками после конверсии и пользоваться!
http://i013.radikal.ru/1106/1c/d3f0ac9a0cd7.png
http://sderni.ru/73669
Слова твои что значат мне не понятно. Я приложил, то что применяют в демо.
Спасибо, давно этот архив искал. Я как сделаю - выложу пример с исходником.
---------- Post added at 21:27 ---------- Previous post was at 21:22 ----------
Стандартный шрифт на ZX - это моноширинный шрифт. Каждый символ - ровно 8 (или 16) пикселей в ширину, независимо от того, насколько реально толстая каждая буква.
Например, посмотри букву I на том скриншоте, который ты приложил - вокруг буквы I большие отступы, так как в моноширинной печати есть жесткая фиксация ширины всех букв.
Пропорциональный шрифт отличается тем, что в нем каждая буква занимает в пикселях только то место, которое ей реально требуется, то есть у каждой буквы своя ширина.
Плюсы пропорциональных шрифтов:
- Красивее.
- Больше букв влазит в строку без потери удобства чтения.
Минусы:
- Сложнее и тормознутее их печатать на экране.
- Готовых шрифтов на ZX почти нет.
Была на форуме такая тема про шрифты, я туда очень много клал. В том числе собственно выдранных. Раньше была специальная программа, она маджики потрошила и вынимала из них шрифты. Я понавыдирал все самые красивые шрифты, которые пользовал в демах, а еще дорисовывал.
Искать их нада в коллекциях AIG, NOMY, потому что я им давал.
У меня было точно примерно две дискеты набитых шрифтами.
А если серьезно подходить к впоросу, тебе надо искать ту системную программу, и ею выдирать шрифты из игр и дем, называя их соответсвенно выдранному.
Сейчас выложу ссылку на коллекции ААА, АИГ, НОМИ. Но там надо долго искать в системных дисках и не факт. Хотя все шрифты заканчиваються: .fnt Можно грабелку настроить чтобы руками не искать.
http://files.mail.ru/5MX2P7
Я тут подумал, что разная высота у каждого символа - это зло, навигировать по такому шрифту при печати будет большой болью.
Да какому кодеру охота разные размеры буквов высчитывать. Понятное дело, что все под одну шаблонку закатают. А так вот все шрифты, бери любой и пользуй на спеке:
http://www.fontoteka.ru/font-category-technical-1.html
Я уже давно оттудова буквы тырю для надписей. И в кошку оттуда понатырил. а потом доработал в паинт.
Шрифт переводиться один в один.
Сегодня читал zx-ревю на бумаге, и как раз выпала статья про пропорциональный шрифт :) Статья находится в журнале номер 5/95.
Майл и Яндекс счас в дауне. Я даже писем счастья со спамом, отправить не могу.
http://narod.ru/disk/17721279001/DISKETY.rar.html
Положил сюда может заработает.
SoftLight, обманул я, в этом номере ревю - статья про печать 42-х символов в строке. Сорри...
зы. SoftLight, удали спасибку...
Я со второго одиссея взял пример - он вроде как с дефолтным шрифтом работает, а с моим нет.
Пока дебаггером не мучал, не смотрел, что там.
Любой шрифт можно в пропорциональный превратить.
Я, например, накалякал себе универсальную прогу которая печатает любым шрифтом пропорционально (т.е. каждая буква занимает столько пикселей на экране, сколько сама по ширине имеет + 1. пример можно поглядеть в игре Fighter. там шрифт прям из ПЗУ используется).
А можно и вручную редактировать.
шрифт из демки - буквы влазят в квадрат 4х4 (3х4 и пустое знакоместо для визуального разделения)
FONTEDITOR (PROXIMA) for proportional fonts (add my Kempston mouse driver)
http://velesoft.speccy.cz/kmouse/kmp...dit-km.tap.zip
After start you press space and define controll keys. Press key "F" jump to proportional font editor. Press key "G+F" jump to big proportional font editor.
http://velesoft.speccy.cz/other/font...oportional.png
http://velesoft.speccy.cz/kmouse/kmp...editor-scr.gif http://velesoft.speccy.cz/kmouse/kmp...ditor-game.gif
Thanks Velesoft - the most interesting question for me is the file format this editor is using.
Do you have any font examples for it? I've tried to google them, but got no luck finding any.
Exist more fonts designed in FONTEDITOR. All this fonts is usable in DESKTOP:
http://www.worldofspectrum.org/infos...cgi?id=0016682
DESKTOP is best word processor for ZX Spectrum. Can write documents with more different fonts and combine graphic (pictures) with text (proportional) and big text with size up to 16x16 pixels.
I need time for search this fonts, please wait. Also exist more documents for DESKTOP (printable documents).
I don't know details about font format, but it's can't be hard detect :)
You can make clear font with first chars and save it. Then change char size and save it. Both fonts can be compared in hex editor on PC and detect format...
this book is writed and printed from DESKTOP on ZX Spectrum:
http://softhouse.speccy.cz/documents...ad/ASMaZX1.pdf
example of fonts for FONTEDITOR/DESKTOP:
http://softhouse.speccy.cz/fonts.htm
I think, it needs to make other theme, about "DESKTOP" editor, isn't it?
У меня часто возникает необходимость рисовать шрифты для разрабатываемых устройств. Очень рекомендую утилиту SG Bitmap FontEditor. Очень много красивых шрифтов под нее со спека перетащил, начиная с 6x6 и заканчивая 32x32, могу поделиться, если надо. Правда, ни один из них не пригодился, в коммерческое устройство пришлось рисовать самостоятельно, а до некоммерческих, где их можно заюзать, руки не доходят ;)
Кстати, эта утилита может TTF шрифт использовать в качестве шаблона, но на практике полезность сомнительна, т.к. обычно требуются шрифты шириной около 10, и до 16 в высоту, а при этих условиях импорт из ttf получается корявым.
И, по поводу хранения шрифтов разной ширины. Я делаю так: в момент инициализации программы прохожусь по всему шрифту, и для каждого символа считаю максимальную ширину каждой строки в битах (банально проверка крайнего бита, буквы выровнены по левому краю), по итогам записываю максимальную ширину каждой буквы куда-нибудь в ОЗУ. Дешево и сердито, не надо никаких доп. байт выделять, и при изменении шрифта все само пересчитывается программой. Насчет вывода особо не заморачиваюсь, т.к. в сигнальном проце устройства тактовая 600+ мгц, и надо умудриться написать вывод с тормозами :)
New theme about DESKTOP / FONTEDITOR / PROPORTIONAL TEXT / PRINTING FROM REAL ZX
http://zx.pk.ru/showthread.php?t=16295
эх как повезло - теперь точно нашёл то, что надо :) См. РЕВЮ №5 за 1994 год. Страница 10
Ссылка на мою прогу для редактирования пропорциональных шрифтов для телефонов Siemens mobile (RIP). Для других нужд (спек) тоже вполне подходит. Помимо телефонов народ использовал для изменения шрифтов в mp3 плеерах, dvd проигрывателях и прочем.
Ширина символа хранится в первом байте, при правке символа расчитывается автоматом.
http://v3.allsiemens.com/manual_rus.htm
а векторные шрифты никто не пробовал? что-то вспомнил, кажется DT`шники их придумали или как топытались раскрутить, был даже редактор и кажется печаталка...
В турбо-паскале вроде бы 7-м были шрифты векторные и либы для их использования, и вроде бы в 90-х кто-то портировал это дело на спек, но широкого распространения не получило, уж не знамо почему. Вру конечно, знамо - с математикой надо дружить, а для спека это несколько напряжно. Тут вон даже пропорционалные шрифты не быстро получаются, что уж говорить про векторные.
Не помню, писал я тут, как сам поступал с пропорциональной печатью, потому напишу:
формат был такой: 8 байт на символ, символ положен набок, 1 байт - длина символа в пикселях (по сути в байтах) + 7 байт матрица. Печаталось всё в буфер прямым копированием нужного количества байт из матрицы в текущую позицию буфера. После того, как вся строка напечатана, буфер копировался с поворотом через rr/rl прямо в нужную позицию экрана. Получалось довольно быстро, уж во всяком случае точно быстрее печаталок из РЕВЮ. Ну и сам эффект пропорциональной печати на тот момент был конечно восторженным.
Кстати, пробовал писать транспонирование знакоместа в 3 приёма (сначала меняем местами квадраты 4x4 (правый верхний, левый нижний), потом 2x2 (по аналогичной сетке), потом 1x1), оказалось 1494 такта - медленнее, чем pop de:rl e:rla:rl d:rla... (1176 тактов). Пичалька.
А на сколько я помню, там использовался прямой шрифт со сдвигом и OR'ом.
7 процедур на 7 возможных вариантов ширины?
Ага, я тоже разные варианты пробовал, в том числе и полубайтовые, а вот на 7 разных процедур, как у Витамина, в 97м году я не догадался, а может и пожмотничал памяти, сейчас уже не помню подробности.
---------- Post added at 18:50 ---------- Previous post was at 18:47 ----------
И да, еще идея была сэкономить памяти на символах одинакового написания за счет таблицы смещений по коду символа. В коде не было реализовано по причине мизерности выигрыша по памяти, все раскладки так и остались на бумаге.