Buchempfehlung
Windows System Programming
Windows System Programming
Das Kompendium liefert viele interessante Informationen zur Windows-Programmierung auf Englisch. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Tutorial

Schriftarten unter FreeBASIC

von RedakteurVoltaSeite 6 von 7

Die FBFonts mit eigenen Fonts überladen

Sieht man sich den Aufbau der internen FBFonts einmal näher an, merkt man das es nicht sehr schwierig sein kann dort eigene Zeichen einzubauen.
Man muss sich natürlich an die vorgegebenen Abmessungen 8x8, 8x14 oder 8x16 halten.
Die FBfonts sind so organisiert, dass jede Zeichenzeile (8 Pixel) einem Byte entspricht und jedes Zeichen, je nach Zeichenhöhe, aus 8, 14 oder 16 folgenden Byte gebildet wird.
Für das 'A' im 8x16 Font sind dies:
Font16.start[1040] = &B00000000
Font16.start[1041] = &B00000000
Font16.start[1042] = &B00010000
Font16.start[1043] = &B00111000
Font16.start[1044] = &B01101100
Font16.start[1045] = &B11000110
Font16.start[1046] = &B11000110
Font16.start[1047] = &B11111110
Font16.start[1048] = &B11000110
Font16.start[1049] = &B11000110
Font16.start[1050] = &B11000110
Font16.start[1051] = &B11000110
Font16.start[1052] = &B00000000
Font16.start[1053] = &B00000000
Font16.start[1054] = &B00000000
Font16.start[1055] = &B00000000


Ein Zeichensatz in einer (schwarz/weiß) BMP-Dateien ist ähnlich (wenn auch Spiegelbildlich und Seitenverkehrt in der Bytefolge) aufgebaut. Mit kleinen Tricks kann man die Fontdatei direkt in den FBFont schreiben.
Vorteil bei dieser Methode ist:

Beispiel: COURIER_14.bmp COURIER_14

...
Sub zeig_Schrift
  For j As Integer = 0 To 4
    For i As Integer = j*32 To j*32+31
    Select Case i
      Case 7 To 10 ,13, 255
        Print "  ";
      Case Else
        Print Chr(i);" ";
    End Select
    Next
    Print
  Next
End Sub


Screen 18,32

set_fbfont 14 'FBFont auf 8x14
Print "Schrifttyp 8x14 Font"
zeig_Schrift 'Beispielprint
Print
'FBFont_14 mit den Zeichen aus COURIER_14.bmp überschreiben
bmp_to_fbfont ("COURIER_14.bmp",14,32) '"filename" , Fonthöhe, erstes Zeichen
Print "Neuer Schrifttyp 8x14 Font"
zeig_Schrift 'Beispielprint

Sleep

Der Funktion bmp_to_fbfont wird der Name der Fontdatei, die Fonthöhe und das erste Zeichen in der Fontdatei (meist 32) übergeben.
Neuer FBFont
Nur Fontdateien mit einer Zeichenbreite = 8 eignen sich für diese Methode, im zweiten Download sind einige weitere Fonts.

 

Gehe zu Seite Gehe zu Seite  1  2  3  4  5  6  7  
Zusätzliche Informationen und Funktionen
  • Das Tutorial wurde am 14.05.2008 von RedakteurVolta angelegt.
  • Die aktuellste Version wurde am 07.01.2013 von RedakteurVolta gespeichert.
  Bearbeiten Bearbeiten  

  Versionen Versionen