www.mikrocontroller.net

Forum: PC-Programmierung Grafik in der Konsole


Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, ich benutze Microsoft Visual-C und suche eine Möglichkeit irgndwie
(windows NT basiertes Betriebssystem) Pixelweise in der Konsole zu
lesen.

Ich möchte also zB ein "A" in der Console ausgeben (printf) und
dieses mit 6*8 Pixel (breite/höhe) auslesen.

Hat einer ne idee? Eventuell könnte man im Grafikpuffer lesen, oder?

Autor: Wolfram (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das dürfte nicht so richtig was werden
Ich nehme an du willst Fonts abscannen. Die Font größe kann sehr
variieren. Schon zu DosZeiten 8x8 CGA 8*14EGA 8*16 VGA und einige mit
9*X von MDA.
Du könntest in ein Bitmap im Programm mit der gewünschten Schrift
schreiben und dieses Bitmap pixelweise abscannen. Die Fonteigenschaften
kannst du ja auch gleich abfragen. Das geht aber nicht mit printf
sondern mit Win32 API Funktionen. Du willst ja auch nicht auf den
Grafikkartenspeicher zugreifen sondern auf den Inhalt des Fensters.

Du könntest natürlich auch einen Screenshot machen als Bitmap
abspeichern und dann abscannen.

Oder du nimmst die Fontdateien auseinander.

Wenn du unbedingt auf der printf Ebene bleiben willst, es gibt da ein
paar BIOS Grafikfunktionen die dich an die Internen Fonts der
Grafikkarte ranlassen. Diese entsprechen allerdings nicht der
Darstellung im Fenster! sondern sind die die die Grafikkarte bei einem
BIOS Aufruf verwenden würde. Außerdem habe ich meine Zweifel was ein
Visual Studio 6/2002/2003 zu einem Biosaufruf aus einer Win32
Executable sagen würde.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zunächst einmal:

Was genau ist das Ziel?

Geht es darum, die in einem Konsolfenster ausgegebenen Zeichen eines
Programmes zu lesen? Dafür gibt es Funktionen in der Win32-API, so daß
keine selbstgebastelte OCR erforderlich ist.

Ansonsten kann wie bei jedem anderem Windows-Fenster das Fensterhandle
des Konsolfensters bestimmt werden und mit einem der BitBlt-Befehle der
Inhalt in eine Memory-Bitmap kopiert werden, um auf die übliche Weise
verwurstet zu werden.

Sollte es hingegen nur darum gehen, die Bitmuster des verwendeten
Zeichensatzes zu erhalten - die Standardschriftart des Konsolenfensters
(bei der verschiedene Größen in Breite*Höhe angegeben werden) liegt in
einem dokumentierten Dateiformat (*.FON) vor, es dürfte weniger Aufwand
sein, die Bitmapdaten aus der betreffende Datei zu lesen.

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also im Prinzip möchte ich mir schnell mein 7x5 Charset
zusammenbasteln.

Ich habs schon mit "Terminal" größe 6 in eine Picturebox (TImage
Equivalent unter Delphi) schreiben und anschließend auslesen,
allerdings ist das keine "genormte" 5x7 Schrift (Ich weiß, DIE
genormte gibt es nicht, aber der Zeichensatz für Alphanumerische LCDs
muss doch auch irgndwo zu bekommen sein?)

Ich glaub das mit dem Konsolenfenster war nicht so eine gute Idee ;)

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Dateiformat der *.fon-Dateien, die mit Windows mitgeliefert werden,
ist dokumentiert. Die für die Konsolfenster standardmäßig verwendete
Schrift ist im Verzeichnis c:\windows\fonts gespeichert (mit
Dateiattribut "versteckt") und heißt vga850.fon. Die anderen
Varianten sind für andere Codepages zuständig.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Was sagst das nicht gleich, dass du einen Font brauchst.

Vielleicht kannst Du mit dem angehaengten was anfangen.
7 Zeilen * 5 Spalten. Jedes Byte ist 1 Spalte. LSB ist
das unterste Pixel.

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ah jut, danke schonmal.

LSB unterstes Bit, gut. Und von links nach rechts nehme ich an? ;)

@Rufus:

Wo findet man denn eine Doku über FON schriftarten, nur zur Info? Habe
kurz die Suche betätigt, allerdings konnte ich nicht so das richtige
Suchwort finden.
Und diese vga850.fon finde ich ebenfalls nicht bei mir auf dem Rechner(
Ja, "Alle Dateien Anzeigen")

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.