|
Виж темите без отговор | Виж активните теми
Дата и час: Пон Юли 27, 2026 5:36 pm
Генериране на шрифтове за графичен дисплей
| Автор |
Съобщение |
|
NikB
Ранг: Почетен член
Регистриран на: Съб Сеп 25, 2004 10:32 pm Мнения: 710
|
 Re: Генериране на шрифтове за графичен дисплей
Върши, страхотно е, ама е скъпо и не го намерих без вируси. Днес половин ден си играх да пиша собствен тул, щото ми трябват 2-3 шрифта. За сега си направих един шрифт - слагам го тук. Когато направя тула да се избира шрифта, ще сложа и самия тул (сега шрифтът и размерът са хардкодирани). ПП: Слагам и тула, ако на някой му се занимава със сорсовете, ще сложа и тях (C#). За сега има недостатъци при шрифтове около и под 12 пиксела (картинката).
|
| Пон Сеп 22, 2014 5:50 pm |
|
 |
|
palavrov
Ранг: Форумен бог
Регистриран на: Вто Окт 11, 2011 11:53 pm Мнения: 4582 Местоположение: Brussels / Пловдив
|
 Re: Генериране на шрифтове за графичен дисплей
Едно време (т.е. 199х) бях писал подобно нещо да конвертва на виндовс битмап шрифтовете - трябваше ми непропорционален шрифт ... ама пусти ПЦ-та - още преди години ми умря диска с архивите, и едва ли някъде е останало нещо  Но доколкото помня беше доста лесно да се крадват, а там малките резолюции са пипнати, няма смисъл човек да си играе да ги рисува на ръка ... та, сигурно в МСДН може все още да се изкопа формата.
_________________ Мразя да мразя ...
|
| Пон Сеп 22, 2014 8:19 pm |
|
 |
|
stefan63
Ранг: Форумен бог
Регистриран на: Вто Фев 07, 2012 11:22 pm Мнения: 3084
|
 Re: Генериране на шрифтове за графичен дисплей
Малко off, има една компания Bitstream , която има някакъв много потаен подход при рендирането на шрифтове с много голяма скорост, в сравнение с по-разпрострените системи. Доколкото си спомням става дума за целочислена , вместо плаващо-точкова математика... Нищо друго не съм срещал , което поне за размисли да послужи... Някой да знае нещо повече?
|
| Пон Сеп 22, 2014 8:43 pm |
|
 |
|
palavrov
Ранг: Форумен бог
Регистриран на: Вто Окт 11, 2011 11:53 pm Мнения: 4582 Местоположение: Brussels / Пловдив
|
 Re: Генериране на шрифтове за графичен дисплей
Ами те векторните шрифтове обикновенно са описани с разни сплайни + малко скрипт с хинтове за малки размери. Целочислени алгоритми за сплайни и запълнени полигони има, виж като трябва да се прави анти алиасинг и под пикселно рендиране става по сложно, но пак едва ли е чак такъв сериозен проблем. Едит: http://pomax.github.io/bezierinfo/ Много математика, ама има и достатъчно картинки за по лесно смилане ... те това е основата ...
_________________ Мразя да мразя ...
|
| Пон Сеп 22, 2014 10:24 pm |
|
 |
|
sparkybg
Ранг: Форумен бог
Регистриран на: Вто Авг 23, 2005 12:02 pm Мнения: 3070 Местоположение: София
|
 Re: Генериране на шрифтове за графичен дисплей
Ползвам "Fony" за четене на готови, генериране, едитване. После записвам например в BMP. После си го прочитам с 1 програмен ред в мое .NET програмче като картинка, и от там - каквото ми трябва. Последно, от кво да е BMP с шрифт, директно в h файл за C. Fony чете повечето популярни битмап шрифтове. В нета има доста, в най-различен размер. За по-едри неща (например, последния път 32x48 пиксела цифри + 1-2 символа) - генерирам от някой TrueType, който ми харесва, отново записвам в BMP, и по каналния ред - в h файл.
|
| Вто Сеп 23, 2014 12:34 am |
|
 |
|
NikB
Ранг: Почетен член
Регистриран на: Съб Сеп 25, 2004 10:32 pm Мнения: 710
|
 Re: Генериране на шрифтове за графичен дисплей
Ами и това програмче, което писах вчера, прави същото - с един бутон се избира шрифта, рисува го буква по буква (една след друга) в един label и от там го взема като пискели и го слага във файл. Недостатъкът идва от определянето на цвета на пикселите при фонтове с малко пискели. Ако ми се занимава да прехвърлям и цвета няма да има проблеми (сега са еднобитови пиксели).
|
| Вто Сеп 23, 2014 4:31 pm |
|
 |
|
sparkybg
Ранг: Форумен бог
Регистриран на: Вто Авг 23, 2005 12:02 pm Мнения: 3070 Местоположение: София
|
 Re: Генериране на шрифтове за графичен дисплей
Нещо не схващам. Пискелите са бели, върху черен фон, например. Зареждаш BMP-то в .NET с един програмен ред, и после можеш да четеш пиксел по пиксел какво има в BMP-то. Недостатъци поне аз не виждам, освен че трябва да си напишеш програмче, което да гледа пикселите и да ги записва в удобен за теб формат. Цялото писане е 20-30 реда на C# или VB.NET.
|
| Вто Сеп 23, 2014 4:52 pm |
|
 |
|
NikB
Ранг: Почетен член
Регистриран на: Съб Сеп 25, 2004 10:32 pm Мнения: 710
|
 Re: Генериране на шрифтове за графичен дисплей
Абе теоретично е така, но може би аз или Win, или заедно  , сме оптимизирали настройките на видимостта на мониторите - например на "ш" в малкия шрифт е 6 колонки: 1 първата вертикална линия е широка един пиксел 2 между първата и втората вертикални черти - един пиксел разстояние 3-4 следват две линии за средната черта: - една вертикална линия широка един пиксел в кафеникаво - една вертикална линия широка един пиксел в синкаво 5 между втората и третата вертикални черти - един пиксел разстояние 6 третата вертикална линия - широка един пиксел Ако символът е по-сложен (примерно ж  ) става още по-зле
|
| Вто Сеп 23, 2014 7:44 pm |
|
 |
|
sparkybg
Ранг: Форумен бог
Регистриран на: Вто Авг 23, 2005 12:02 pm Мнения: 3070 Местоположение: София
|
 Re: Генериране на шрифтове за графичен дисплей
 |  |  |  | NikB написа: Абе теоретично е така, но може би аз или Win, или заедно  , сме оптимизирали настройките на видимостта на мониторите - например на "ш" в малкия шрифт е 6 колонки: 1 първата вертикална линия е широка един пиксел 2 между първата и втората вертикални черти - един пиксел разстояние 3-4 следват две линии за средната черта: - една вертикална линия широка един пиксел в кафеникаво - една вертикална линия широка един пиксел в синкаво 5 между втората и третата вертикални черти - един пиксел разстояние 6 третата вертикална линия - широка един пиксел Ако символът е по-сложен (примерно ж  ) става още по-зле |  |  |  |  |
Tи си оптимизирай квото искаш на монитора. Fony-то го изключва, докато рендерва. Получава се черно-бял текст, без ClearType и прочие мониторни благинки. Сега, друг е върпоса ако искаш и на твойто графично LCD да излизат същите опримизации, ама според мен за малки неща (в мисъл, като процесорна мощ) е безпредметно. Fony-то, както споменах, поддържа и популярните формати за bitmap шрифтове, а от тях в интернет можеш да намериш доста. Става и за редактиране. Изобщо - единственото безплатно програмче, което ми свърши работа когато посления път търсих с кво. Гепил съм и шрифтовете на няколко кирилизатора - например в BDS имаш 9x16, 8x14, 8x8 и май още няколко размера. Четат се директно от com/exe файла, само трябва да нацелиш офсета. Лесно е. Ето ти рендернат 8pt Arial narrow: За съжаление TrueType шрифтовете рядко изглеждат добре при по-малко от 8 пункта височина. Рядко 6. За малки шрифтове без ClearType си трябват BitMap шрифтове, пипнати на ръка. Иначе не става.
|
| Вто Сеп 23, 2014 8:06 pm |
|
 |
|
vgeorgiev
Ранг: Новодошъл
Регистриран на: Сря Фев 06, 2013 10:25 am Мнения: 197
|
 Re: Генериране на шрифтове за графичен дисплей
Не разбрах, защо не ти хареса GLCD ? Според мен е супер удобна програмка.  Символите се описват от горе на долу и от ляво на дясно. Всички символи имат като първи байт ширината си. Направих си едно приложение на C, което да ми направи бин файл от масива, който изкарва програмката. От там на СД карта и така на дисплея.
|
| Нед Сеп 28, 2014 4:32 pm |
|
 |
|
bobihot
Ранг: Форумен бог
Регистриран на: Сря Фев 13, 2013 3:35 pm Мнения: 1803
|
 Re: Генериране на шрифтове за графичен дисплей
Как се записват като байтова последователност? Трябва ми четим 16 пиксела височина?
|
| Нед Сеп 28, 2014 5:01 pm |
|
 |
|
vgeorgiev
Ранг: Новодошъл
Регистриран на: Сря Фев 06, 2013 10:25 am Мнения: 197
|
 Re: Генериране на шрифтове за графичен дисплей
Първият байт е ширината на символа. След това следват данните за символа. Нека началото на координатната система е горе в ляво.
първи байт: пиксели x=0, y[0..7] втори байт: пиксели x=0, y[8..15] трети байт: пиксели x=1, y[0..7] и т.н.
Ако височината на символа не е кратна на 8, няма проблем. например нека е 9. всеки втори байт, ще носи инфо само за един пиксел от най-долния ред.
|
| Нед Сеп 28, 2014 5:24 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 2 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|