Forum: Mikrocontroller und Digitale Elektronik Grafik LCD


von GAST (Gast)


Lesenswert?

Hallo an alle!!
Weis einer von euch ein Programm mit dem man farbige oder SW Bilder 
(Bitmap, jpeg, ...) in z.b. einen eeprom Speicherplatzschonend speichern 
kann und die man danach auf einen 128x64 Grafik LCD (einfärbig) anzeigen 
kann????
Also nochmal in deutsch :-) ich brauche ein Program das mir ein Bild so 
umwandelt, das ich es leicht auf meinen Display anzeigen kann (ohne 
langes rumrechnen mit der größe also wenn das Bild z.b. zuerst eine 
Auflösung von z.B.640x480 hatte solte es danach so umgewandelt sein das 
es auf mein 128x64 Pixel passt). Und es sollte das Bild so umwandeln das 
es so wenig wie möglich Speicherplatz praucht (also keine Farbinfos 
usw.)!!
Ach ja und ich hab schon gegoogelt bin aber leider nicht fündig 
geworden!!!

Würde mich freuen wenn mir einer bei meinen Problem weiter helfen 
könnte!!!

von Stefan (Gast)


Lesenswert?

das bild in das lcd-format umwandeln (am pc) u. die farbzahl auf die 
anzahl des lcds reduzieren. dann in ein pixelformat wandeln u. die 
pixelinfos ins eeprom speichern.

"nicht viel rumrechnen" und gleichzeitig "platz sparen" (kompression) 
wird nicht so einfach sein. weil wenn du komprimierst musst du danach 
ein bisschen rumrechnen...

von keksladen (Gast)


Lesenswert?

Die Größe des Bildes wirst du schon selber anpassen müssen. Wird ja wohl 
auch nicht das Problem sein (zB IrfanView).
Zum Umwandeln könntest du dir auch rasch ein kleines Proggy schreiben, 
was zB BMP Bilder (macht sich sicherlich leicht - du musst dir lediglich 
das Dateiformat aus dem Netz laden... zB 
http://www.google.de/search?hl=de&q=BMP+dateiformat&btnG=Suche&meta= ) 
in reinen Code umwandelt. So speicherst du immer 3 Hex Werte (zB 0x3F) 
für die RGB Farbwerte eines Pixels in ein Array, was du dann im 
Flashspeicher des AVRs ablegen kannst.

Also dein eigenes Bildformat könnte dann später zB so aussehen:
Header: (uint8_t) WIDTH; (uint8_t) HEIGHT
Data: 0x1F,0x..,...,...,...

Wobei also immer drei aufeinanderfolgende Werte die Farbe eines Pixels 
beschreiben.

von GAST (Gast)


Lesenswert?

Ich werd mal ein beispiel zur besseren verständniss geben!

wenn ich ich z.B. eine "L" am Display anzeigen will sollte der datei 
dazu so aussehen:

Zeile_1: 00100000  ..........
Zeile_2: 00100000
Zeile_3: 00100000
Zeile_4: 00100000
Zeile_5: 00100000
Zeile_6: 00100000
Zeile_7: 00111111
.
.
.
.

Dies sollt halt mit einen Bild auch funzen.

von Michael U. (Gast)


Lesenswert?

Hallo,

erstmal mit z.B. Irfanview auf die gewünschte Größe bringen, Kontrast 
und Helligkeit anpassen, Farbtiefe auf 2 Bit mot Floyd-Steinberg 
reduzieren.

Dann wundern, was da übrig bleibt... ;)
Verschiedene Helligkeit/Kontrasteinstellungen durchprobieren oder 
anderes Bild nehmen.

Zum Platz sparen bei s/w dann mit RLE packen, geht auch auf einem AVR 
einfach auseinander zu konten, bevor die Daten zum Display geschickt 
werden.

Gruß aus Berlin
Michael

von GAST (Gast)


Lesenswert?

Danke für deine Antwort  keksladen aber ich will das bild in ein SW-Bild 
umwandeln also die Farbinfos weglassen (spart Speicherplatz).
Aja und das wissen wie man ein Prog fürn pc schreibt hab ich mir leider 
noch nicht angeeignet :-(

von Michael U. (Gast)


Lesenswert?

Hallo,

ach ja, zum Datei erzeugen noch: ich programmiere auf dem PC 
normalerweise nicht, die Folge ist meist, daß ich solche Konvertierungen 
dann mit einem PHP-Script auf meinem lokalen Test-Websever 
erledige..........

Aber da hat vermutlich jemand anders eine elegantere Idee.

Gruß aus Berlin
Michael

von holger (Gast)


Angehängte Dateien:

Lesenswert?

Im Anhang mal ein Programm von mir was ich
für genau diesen Zweck gebastelt habe.
Funktioniert aber nur mit Schwarzweiss
Bitmap Dateien (*.bmp).
Es kann Daten für T6963 und KS108 Controller
erzeugen.

Das Bild musst du mit einem Grafikprogramm
auf SW und deine Displaygröße runter rechnen.

Mit bmp2c kannst du dir dann entweder C-Code
zum einfügen in deine Software oder Bin-Dateien
zum brennen in ein EEPROM erzeugen. Siehe
readme.txt im ZIP.

von Noonien (Gast)


Lesenswert?

ich hab mal ein Programm geschrieben (eher anfangen) aber 1 bit sachen 
sollte der schaffen... bei interesse einfach hier ja ankreuzen  :P
Da benötigst du allerdings MS .Net2 falls du es noch nit installiert 
hast

[   ] Ja
[   ] Nein

von GAST (Gast)


Lesenswert?

hallo  holger!!!
Danke für dein Prog, das ist genau das wonach ich gesucht hatte!!!!
Danke aber auch an all denen die mir sonst noch geholfen haben!!!!
ich muss sagen dieses Forum ist einsame klasse!! schnelle und hilfreiche 
antworten!!!!
so werd jetzt mit meinem display spielen :-)!!

von Christian (Gast)


Lesenswert?

Hi Holger,

so ein Programm suche ich quasi auch!
nur für einen S1D10605 Controller
der arbeitet genau andersrum als der KS108
also D0 ist das obereste Pixel
und D7 das unterste

könntest du vlt eine solche Option in dein Programm einpflegen?
Wäre echt super!

von Chris (Gast)


Lesenswert?

Hat vll. jemand noch eine Routine zur Verfügung mit dem ich das Array 
ans LCD übertragen kann. Meine ist nämlich inkompatibel zu dem 
ausgespuckten Format von bmp2c. Das LCD benutzt den T6963 und muss nur 
s/w können.
Danke,

von Bernie C. (bernaco)


Lesenswert?

GAST wrote:
> Weis einer von euch ein Programm mit dem man farbige oder SW Bilder
> (Bitmap, jpeg, ...) in z.b. einen eeprom Speicherplatzschonend speichern
> kann und die man danach auf einen 128x64 Grafik LCD (einfärbig) anzeigen
> kann????
> Würde mich freuen wenn mir einer bei meinen Problem weiter helfen
> könnte!!!

Hallo an alle

Es ist ein alten Originalbeitrag ich weiss schon aber für interessierte 
entwickler die in der Datenbank nach infos suchen, ist so ein freeware 
tool bei Bitmap2LCD.com zu finden...

mfrG

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.