Baugruppen Aktoren /Sensoren
 
 

 
 

           Farbgrafik-TouchDisplay EA eDIPTFT43

 
 
.. Datenblatt .. EA-Kit IDE .. Bildformat.G16
 
 
 
 
 

 
 
 
 
 
Das EA eDIPTFT Display benutzt zur internen Darstellung von Bildern ein Format, das von Electronic Assembly als .G16 Format angesprochen wird. Informationen zu diesem Aufbau von Bildern sind ganz unten zu finden.

Aus Angaben im Datenblatt ist bekannt, dass das G16-Format eine Transparenzfarbe zulässt. Zudem kann eine Datei bis zu 255 Einzelbilder enthalten. Zur Darstellung eines Pixels benutzt es 16Bit, also ein Word. Dabei entfallen je 5Bit auf die Farben rot (R) und blau (B) sowie 6Bit auf die Farbe grün (G). Damit sind 32 Rot-, 64 Grün- und 32 Blautöne darstellbar, insgesamt also 32•64•32= 65536 RGB-Farben.

Dem entsprechend belegt ein Vollbildbild für die Anzeige mindestens 480•272•2= 261.120 Byte = 255kByte wobei der Overhead, von mindestens 30Bytes hinzuaddiert werden muss. Die Bilder können durch die IDE komprimiert werden, was bei fotografischen Darstellungen nicht übermäßig effektiv sein muss. Das folgend dargestellte Bild benötigt komprimiert noch immer 221kByte.


Bei Grafiken und Zeichensätzen sollte sich der Kompressionsfaktor des RLE genannten Verfahrens wesentlich verbessern.

Bildvorlagen können der EA-Kit Entwicklungsumgebung in den Formaten .BMP, .GIF, .JPG und .TGA angeboten werden. Die IDE wandelt sie in das .G16 Format, bevor sie zur Anzeige übertragen werden. Zu große Bilder werden proportional verkleinert, wobei die IDE-Direktive MaxSize: behilflich ist. Mit einer zweiten Direktive MaxColorDepth: kann die Farbtiefe auf 256, 16, 8 oder 2 Farben vermindert werden. Dies spart zwar Speicherraum, kann aber naturgemäß auch zu unschönen Bildern führen.
 



 
Aufbau einer Bilddatei im G16 Format:
Dieser Text wurde im Verzeichnis C:\ELECTRONIC ASSEMBLY LCD Tools\Tools der EA-Kit IDE Programmdatei gefunden
 
 
 
 

Die Bilddatei kann sowohl ein einzlenes Bild, als auch mehrere Bilder für
z.B. Fonts oder Animationen enthalten. Eine Transparentfarbe wird
unterstützt.
----------------------------------------------------------------------------

Aufbau des Bildheaders:

 1. Byte: $1B  ; ESC   Eine Bilddatei beginnt immer mit dem Befehl
 2. Byte: $55  ; 'U'   zum Bilddownload an Koordinate 0,0
 3. Byte: $4C  ; 'L'
 4. Byte: $00  ;  x -Koordinate  LOW-Byte
 5. Byte: $00  ;          "      HIGH-Byte
 6. Byte: $00  ;  y -Koordinate  LOW-Byte
 7. Byte: $00  ;          "      HIGH-Byte

 8. Byte:  'G' ; Kennzeichnung
 9. Byte:  '1' ; für eine Bild-, Font- oder Animationdatei im G16 Format
10. Byte:  '6'

11. Byte: $xx  ; Bit pro Pixel: z.B ..
               ;  1=Monochromes Bild;     4=16 Farben;    8=256 Farben
               ; 16= 65536 Farben High-Color RGB565

12. Byte: $xx  ; Transparentfarbe
               ; 0=keine   1=es folgen Angaben zur Transparentfarbe
               ; ---------------------------------------|------------------
               ; 4/8 Bit-Bilder                         |   16 Bit Bilder
               ; ---------------------------------------|------------------
13. Byte: $xx  ; Paletten Nr. der Transparentfarbe      | \ RGB565-WORD der
14. Byte: $xx  ; Anzahl vorhandener Farbpaletten (0=256)| / Transparentfarbe
15. Byte: $xx  ; reserviert

16. Byte: $xx  ; Größe der Bilder:
               ; 0=Unterschiedliche Bildgrößen
               ; 1=gleiche Breite
               ; 2=gleiche Höhe (z.B proportionale Fonts)
               ; 3=gleich grosse Bilder
           
17. Byte: $xx  ; Erste  Bild/Zeichen Nummer
18. Byte: $xx  ; Letzte Bild/Zeichen Nummer

19. Byte: $xx  ; \  Breite des breitesten Bildes/Zeichens Low-Byte
20. Byte: $xx  ; /                                        High-Byte
21. Byte: $xx  ; \  Höhe des höchsten Bildes/Zeichens     Low-Byte
22. Byte: $xx  ; /                                        High-Byte

----------------------------------------------------------------------------

Nach dem Header folgen, die Farbpaletteneinträge, die nur bei 4/8 Bit
Bildern auftreten. G16-Bilder schließen lückenlos an. Bei ihnen wird
jedes Pixel mit einem 16 Bit Word dargestellt, bei dem wie gezeigt,
die Bits die gewünschte Farbe vollständig beinhalten. 

               16-Bit RGB565-WORD:    1. Byte: \ Low-Value
                                      2. Byte: / High-Value
             Bits des RGB565-WORD:    
             Bit-Nr.  15 14 13 13 11 10  9  8   7  6  5  4  3  2  1  0
                      R4 R3 R2 R1 R0 G5 G4 G3  G2 G1 G0 B4 B3 B2 B1 B0
                      -------------- ------------------ --------------
                      R-Rot 5       G-Grün 6       B-Blau 5
----------------------------------------------------------------------------

Nach den Farbpaletten folgt die Bildtabelle mit je 8 Bytes pro Bild

 1. Byte: $xx  ; \  Breite des Bildes in Pixel  Low-Byte
 2. Byte: $xx  ; /                              High-Byte

 3. Byte: $xx  ; \  H”he des Bildes in Pixel  Low-Byte
 4. Byte: $xx  ; /                            High-Byte

 5. Byte: $xx  ; \                        Low-Byte
 6. Byte: $xx  ;  > Offset der Bilddaten  Mid-Byte
 7. Byte: $xx  ; /  (ab Fileanfang)       High-Byte

 8. Byte: $xx  ;    BIT D6..D0 = 0..127 Wartezeit in 1/10s bei Animationen
               ;    BIT D7        = 0 unkomprimierte Bilddaten
               ;               = 1 RLE komprimierte Bildzeilen
          
---------------------------------------------------------------------------

Nach der Bildtabelle folgen die eigentlichen Bilddaten. Sie sind zeilenweise
von oben nach unten abgelegt. Die Anordnung der Pixel in einer Zeile
geschieht von links nach rechts

Aufbau einer Bildzeile (unkomprimiert):

 1 Bit pro Pixel:  das erste Pixel ist das Datenbit D7
     (Monochrom)   AnzahBytesProZeile = (Breite+7) / 8 

 4 Bit pro Pixel:  das erste  Pixel ist das HI-Nibble (D7..D4)
      (16-Farben)  das zweite Pixel ist das LO-Nibble (D3..D0)
                   AnzahBytesProZeile = (Breite+1) / 2 
 
 8 Bit pro Pixel:  das erste  Pixel ist das erste Byte
     (256-Farben)  AnzahBytesProZeile = Breite

16 Bit pro Pixel:  das erste Pixel ist das erste RGB565-WORD
   (65636-Farben)  AnzahBytesProZeile = Breite * 2

----------------------------------------------------------------------------

Aufbau einer RLE komprimierten Zeile:

1.  Bei Bildern mit 1, 4 und 8 Bit pro Pixel werden die Daten Byteweise
    behandelt. Das erste Byte ist das Anzahl-Byte, das zweite Byte ist das
    Wiederholbyte
    
    Angaben des Anzahlbyte mit den Bits B7 .. B0
    B7         = 0 es folgen Anzahl unkomprimierte Bytes
               = 1 nachfolgendes Byte wird Anzahl mal wiederholt
       B6..B0  = (0..127) +1 =>  Anzahl= 1..128

    Angabe des Wiederholbytes, je nach B7
    B7=0 - unkomprimierte Einzelbytes wie in Anzahl angegeben
    B7=1 - ein Byte, das Anzahl mal wiederholt werden soll 

    Beispiel eine monochrome Zeile mit 128 Pixel wie ..
    00 00 00 00 00 12 34 56 78 FF FF FF FF FF FF FF
    wird zu
    84 00 03 12 34 56 78 86 FF

------------------------------------------

2.  Bei High-Color 16 Bit Bildern werden die Daten Pixelweise behandelt,
    wobei jedes Pixel zwei Bytes umfasst. Auch hier ist das erste Byte
    das Anzahl-Byte, es folgt ein Word des zu beschreibenden Pixels, also
    ein Wiederholword
    
    Angaben des Anzahlbyte mit den Bits B7 .. B0
    B7         = 0 es folgen Anzahl unkomprimierte Words
               = 1 nachfolgendes Word wird Anzahl mal wiederholt
       B6..B0  = (0..127) +1 =>  Anzahl= 1..128   

   Angabe des Wiederholwords, je nach B7
   B7=0 - unkomprimierte Einzelwords wie in Anzahl angegeben
   B7=1 - ein Word, das Anzahl mal wiederholt werden soll     

   Beispiel eine 16-Bit RGB565 Zeile mit 16 Pixeln wie ..
   0000 0000 0000 0000 0000 1234 5678 ABCD FFFF FFFF FFFF FFFF 
   FFFF FFFF FFFF FFFF
   wird zu
   84 0000 02 1234 5678 ABCD 87 FFFF




 

 
www..de