Einzelnen Beitrag anzeigen

profmaster

Registriert seit: 9. Feb 2005
Ort: Frakfurt/Oder
21 Beiträge
 
Delphi 7 Professional
 
#1

Zeichenfont ausgeben - wie? (Verständnisfrage)

  Alt 25. Nov 2005, 20:46
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
  Mit Zitat antworten Zitat