Hallo!
Ich habe einen Font 8x16, um ein Beispiel zu geben. Dieser sei in einer Datei pixelweise gespeichert. Ein Array wäre dafür:
type
TFont8x16 = array[0..4095] of byte;
Schließlich müssen die Schriftzeichen in der Datei auch byteweise abgelegt werden, damit sich deren Aussehen vom BIOS Zeichensatz unterscheidet, abgesehen davon, das auch der Zeichensatz im ROM letzlich aus Bitmustern besteht.
Wie wird so ein Font nun ausgegeben? Ich habe folgenden Ansatz:
Delphi-Quellcode:
type
TFont8x16 = array[0..4095] of byte;
procedure OutChars;
var
i,ix,iy,m,n: Integer;
chars: array[0..255] of array[0..7,0..15] of byte; //Eine Möglichkeit
Font: TFont8x16;
begin
move(Font,chars,sizeof(charSet8x16));
ix := 0; n := 0;
iy := 0; m := 0;
for i := 0 to sizeof(charset8x16)-1 do
begin
//chars[ch,ix,iy];
ix := (i mod 8) + n;
PutPixelXY(ix,iy,Font[i],color);
inc(iy);
if (iy mod 16) = 0 then
begin
inc(n,8); iy := 0;
end;
end;
end;
Und Hier -> PutPixel:
Delphi-Quellcode:
procedure putpixel();
var Bitnum: Integer;
begin
for num := 0 to 7 do
if IsBitTrue(pixel,num) then
Bildspeicher[X + Y * XRes] := VordergrundFarbe
else Bildspeicher[X + Y * XRes] := HintergrundFarbe;
end;
end;
Die Sache mit der Bitnummer wegzulassen, bringt auch nichts. In welchem Format sind solche Fonts gespeichert und wie gibt man sie aus?
Wer kann helfen?
profmaster