Tutorial
Schriftarten unter FreeBASIC
von Volta | Seite 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:
- die leichte Änderungsmöglichkeit des Zeichensatzes z.B. in Paint,
- die Zeichensätze als BMP-Datei sind sehr klein und
- der geänderte Zeichensatz lässt sich mit PRINT und DRAW STRING benutzen.
Beispiel: COURIER_14.bmp
...
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.
Nur Fontdateien mit einer Zeichenbreite = 8 eignen sich für diese Methode, im zweiten Download sind einige weitere Fonts.
Zusätzliche Informationen und Funktionen | |||||||
---|---|---|---|---|---|---|---|
|