www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik G16-Format: Wandlung in BMP?


Autor: Martin M. (martin69)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

das TFT-Display eDIPTFT43-A liefert bei der Hardcopyfunktion Bilder im 
G16-Format (ein Demobild im Anhang). Es gibt vom Displayhersteller einen 
Bildeditor, mit dem man die Bilder öffnen und als Bitmap (*.BMP) 
speichern kann. Dieser Zwischenschritt ist etwas lästig...

Hat jemand eine Beschreibung, wie dieses G16-Format aufgebaut ist? Ich 
habe im Internet keinen vernünftigen Treffer gefunden. Im 
Editor-Programm wird dieses merkwürdige Format als 
"Bitmap/Animation/Font (*.G16)" angezeigt.

Oder noch besser: hat jemand mal eine Routine geschrieben, mit der man 
das G16-Format in ein BMP konvertieren kann? Ich würde diese gerne in 
meinem ATmega128 laufen lassen, sofern es nicht zu sehr kompliziert ist.

Beim blau-weißen Display vom selben Hersteller habe ich eine Routine 
geschrieben, die das interne BLH-Format in BMP´s konvertiert (siehe 
Anhang).

Gruß
Martin

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Häng doch mal ein *.G16 mit der konvertierten *.bmp dran.
Vieleicht ist das Format recht einfach zu entschlüsseln.

Autor: Martin M. (martin69)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
anbei die Demodatei als BMP (es handelt sich um ein Demobild des 
Displayherstellers).

Autor: Martin M. (martin69)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Nachtrag: Das Forumprogramm hat aus dem BMP ein PNG gemacht. Nun das BMP 
als Textdatei (Datei umbenannt)

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beim Hersteller steht was vom RLE "Run Length Encoding" Format.
Ist also komprimiert. Das wird dann doch nicht so einfach :(

Autor: Martin M. (martin69)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich habe ein externes RAM auf dem Board, da könnte ich die decodierte 
RLE-Bilddatei zwischenspeichern und anschließend ein BMP draus machen.
Oder wenn das externe RAM nicht groß genug wäre: eine SD-Karte hängt 
auch noch am AVR.

Autor: kleiner hunger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
herstellersoftware installieren. in einem unterverzeichnis ist eine 
textdatei mit der beschreibung des formats

Autor: kleiner hunger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> eDIPTFT43-A liefert bei der Hardcopyfunktion Bilder im
G16-Format
ist aber nicht mit RLE

Autor: Martin M. (martin69)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
@kleiner hunger:

danke für den Hinweis. Ich hatte nur bei den Beispieldateien geschaut, 
die das Installationsprogramm in "eigene Dateien" ablegt.
Ich habe die Datei mal angehängt. Mal schauen, wie ich das mit der 
Konvertierung im AVR hin bekomme....

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da du ja nur ein spezielles Format konvertieren willst würde ich es 
folgendermaßen machen:
Ein Bild von Display erzeugen, in BMP wandeln.
Dann jeweils den Header vom Bild wegwerfen (der wird wohl immer gleich 
sein) und für die Konvertierung einfach den header des BMP rauschreiben 
+ der dekomprimierten RLE Daten.

Autor: Martin M. (martin69)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe es nun fast geschafft:

Die Daten aus dem Display kommen nicht in RLE codiert raus, das macht 
die Sache einfacher. Wenn man eine Zeile scannt, deren Pixelanzahl ein 
Vielfaches von 4 ist, sind die Daten bei BMP und G16 identisch. Man muß 
nur das Bild zeilenmäßig von unten nach oben scannen, da das Bild sonst 
auf dem Kopf steht.

Bisher habe ich folgendes getestet:
* blaues Bild mit ein paar einzelnen farbigen Pixeln auf dem Display 
ausgegeben
* BMP-Header vom AVR auf der Schnittstelle zum PC ausgegeben 
(Längenangaben usw. sind bisher noch fest im Programm hinterlegt)
* die obersten 2 Zeilen "gescannt" und über den AVR auf der 
Schnittstelle zum PC ausgegeben. Die Ausgabe erfolgt direkt, der 
Zwischenschritt über das externe RAM wird nicht benötigt.

Geht bisher prima. Nächstes Wochenende werde ich versuchen, die 
restlichen Zeilen auf der Schnittstelle zum PC auszugeben. Mal sehen wie 
das mit den Farbangaben im Header des BMP ist. Ich befürchte, man muß 
dort alle Farben definieren, die in dem Bild vorkommen.

Nochmals danke für die Hilfen und Tipps.

Autor: iris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Martin,
kurze Frage: Hast du die Routine noch irgendwo bzw. stellst du sie zur 
Verfügung? (Welcher Anhang war gemeint?)

Martin M. schrieb:
> Beim blau-weißen Display vom selben Hersteller habe ich eine Routine
> geschrieben, die das interne BLH-Format in BMP´s konvertiert (siehe
> Anhang).

Herzlichen Dank und Gruß,
Iris

Autor: Martin M (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Iris,

mit Anhang habe ich eigentlich das Bild "einstellen_zeiten.png" gemeint 
und nicht den Quellcode.

Das mit dem blauweißen Display ist schon ewig her. Anbei ein Auszug aus 
der Software. Nicht gerade professionell programmiert...

Das Display hat irgend wann mal nicht mehr die Daten einer ganzen Zeile 
ausgespuckt. Ursache war damals total unklar. Daher mußte ich die Daten 
einer Zeile in mehrere Teilstücke zerlegen. Das macht den Quellcode 
nicht gerade übersichtlich.

Soweit ich mich erinnere, muß man erst einen Header auf der 
Schnittstelle ausgeben, dann Zeile für Zeile scannen und ausgeben. 
Wichtig ist, daß es glaub von unten nach oben gescannt wird, sonst steht 
das BMP auf dem Kopf.

Gruß
Martin

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.