Autor Thema: Fonts  (Gelesen 5612 mal)

T0ast3r

  • Gast
Gespeichert
« am: 17. April 2006, 09:54 »
Wie realisiert ihr eure Fonts in eurem OS ?
Gibt's jemanden der nicht Rasterfonts (manche sagen bitmaps) verwendet?

Wenn Rasterfonts:
Habt ihr alle (die verwendeten) Größen gespeichert oder rechnets ihr auf bzw. ab (vergrößern, verkleinern, z.B. von 16:16 auf 8:8) ?

Wenn nicht Rasterfonts:
Verwendets ihr True Type?
Oder andere Metadaten, wenn ja welche?
Wie realisiert ihr die Einbindung von solchen Fonts?
Nehmts ihr eine fertige Library oder schreibt ihr selbst was?

lg,

Toaster

bitmaster

  • Troll
  • Beiträge: 1 138
    • Profil anzeigen
    • OS-64 = 64 Bit Operating System
Gespeichert
« Antwort #1 am: 17. April 2006, 12:08 »
Hi,

also ich habe bis jetzt lediglich eine Datei, die die Bytes als Pixel verwendet. Also die haben eine Größe von 12*8 also 96. Ein Zeichen hat also 96 Byte. Das ist bis jetzt fest vorgegeben. Aber ich werde noch einen Header einbauen in der dann die Breite und höhe der jeweiligen Schriftart steht. Somit soll mein OS dann automatisch die größe und Breite durch den Header erkennen. Man kann sich einfach ein Zeichen für Pixel schreiben ausdenken, wenn das zeichen nicht ist, einfach kein Pixel schreiben. Also von den 96 Byte, überall wo z.B. das Zeichen "!" ist ein Pixel schreiben, ansonsten einfach weiter. So mache ich das zumindest. Gibt bestimmt auch andere Lösungen, aber die finde ich gut und sie funktioniert.

bitmaster
In the Future everyone will need OS-64!!!

bitmaster

  • Troll
  • Beiträge: 1 138
    • Profil anzeigen
    • OS-64 = 64 Bit Operating System
Gespeichert
« Antwort #2 am: 17. April 2006, 14:30 »
Zitat von: T0ast3r
jaa das zeichnen ist kein problem...
nur woher bekommst du deine zeichen? (die abgespeicherten)

machst du die alle selbst (in paint  :lol: ) ?
oder gibts da wo eine table zum downloaden ?
Hehe, nee ich packe die alle in reine Bytes. Also z.B. so:

Buchstabe A:

db "        "
db "   oo   "
db "    o   "
db "    o   "
db "   o o  "
db "   o o  "
db "  o   o "
db "  ooooo "
db "  o   o "
db " ooo ooo"
db "        "
db "        "

Hmm... Mist, kann der hier nicht so richtig darstellen. Aber ich hoffe du weißt was ich mein. Meine Routine zum Textausgeben liest dann die Pixel ein und Prüft ob es das Zeichen "o" ist. Wenn ja wird ein Pixel in einer angegebenen Farbe geschrieben, und wenn nicht dann wird einfach der nächste pixel geprüft bis die 96 fertig sind.

bitmaster
In the Future everyone will need OS-64!!!

bitmaster

  • Troll
  • Beiträge: 1 138
    • Profil anzeigen
    • OS-64 = 64 Bit Operating System
Gespeichert
« Antwort #3 am: 17. April 2006, 14:43 »
Zitat von: T0ast3r
jaa ich weiß was du meinst, du machst das ganze "bit" (bei dir bitbyte) weise
entweder angezeigt oder nicht, schon klar
aber du tust da alle buchstaben selbst dbn? puhh bei allen buchstaben und mehreren größen ist das dann schon eine lebensaufgabe
Wie? Wieso lebensaufgabe? Man muss doch einfach nur die Punkte in einem 12*8 Array packen. Das ist doch nicht schwer.
In the Future everyone will need OS-64!!!

bitmaster

  • Troll
  • Beiträge: 1 138
    • Profil anzeigen
    • OS-64 = 64 Bit Operating System
Gespeichert
« Antwort #4 am: 17. April 2006, 15:28 »
Zitat von: T0ast3r
jaa, für ein einziges a vielleicht,
aber rechne

wir haben 256 verschiedene buchstaben, un dann noch gaanz viele verschiedene größen...
Ich habe bis jetzt nur eine Größe von 8*12. Und davon habe ich bis jetzt A-Z, a-z, 0-9 usw. Ich habe auch noch nicht alle. Aber ich bleibe erstmal bei einer Schriftart.

bitmaster
In the Future everyone will need OS-64!!!

Termite

  • Beiträge: 239
    • Profil anzeigen
Gespeichert
« Antwort #5 am: 17. April 2006, 23:35 »
Hi

kennst du das buch PC undergound? ist schon etwas ällter. die haben das damals so gemacht, das sie ein bild mit in den grafikspeicher geladen haben, und dann die notwendigen zeichen durch die gegen kopiert haben. Hatte dann auch den vorteil das das dann auch schön in farbe ging. :)

Für zwei verschiedene berufliche Projekte hab ich mal ein tool zur Rastergafik generierung geschrieben. Ich hab beidemale auf der Freetyp aufgesetzt. Font einlesen, passende parameter eingeben, und dann die nötigen datenstruckturen als c-Datei ausspucken lassen. War beidemale ein font mit variabler breite. dementsprechend musste ich dann noch zeichenbreite, und Position im Datablock mitführen.

und für den vorschlag von bitmaster
1. eine definetabelle für alle 256 möglichen bitkombinationen eines byts anlegen

#define _________ (0x00)
#define ________X (0x01)
...
#define XXXXXXXX (0xFF)


Dann kann man im 2ten step seine zeichen noch relativ einfach als ascii ART zeichnen


byte Leter_Auml [] =
{
________,
_X___X__,
___X____,
__X_X___,
_X___X__,
X_____X_,
XXXXXXX_,
X_____X_,
X_____X_,
X_____X_,
________,
________,
}


sowas dann ggf auch für die selbsgenerierten verwenden, so kann man ggf einfach noch zeichen nachbearbeiten falls mal was nicht ganz so toll aussieht. Geht aber leider nur für monokrome zeichensätze


gruss Termite

scales of justice

  • Beiträge: 228
    • Profil anzeigen
Gespeichert
« Antwort #6 am: 18. April 2006, 14:28 »
also ich hab meine Fonts so ähnlich wie bitmaster in Arrays gespeichert,
allerdings ziemlich komisch, irgendwie immer den Abstand zum letzten Pixel,
ich dachte ich könnte so Speicherplatz sparen, war aber Schwachsinn
und jetzt hab ich keine Lust mehr das System zu ändern

später will ich das auch mit richtigen bildern machen, ich lad einfach einmal ne bitmap in den Speicher, aus der ich dann immer wieder die einzelnen Buchstaben auslesen kann

ich hab das ganze aber in C gemacht, hab einmal nen FAR-Zeiger zum Video-Speicher gemacht und über den steuert meine Grafikengine, die ich irgendwann mal für Windows gebraucht hab, das Ganze

 

Einloggen