Forum: Mikrocontroller und Digitale Elektronik LibPNG für Embedded Systems


von Mars (Gast)


Lesenswert?

Hallo,

ich habe ein ARM9 System mit wenig Flash (<= 1MB), dafür aber mit 
genügend RAM.
Da ich auch ein Display(320x240) ansteuern will, und dafür mehrere 
Bilder brauche, suche ich nun nach einer Möglichkeit die Bilder 
möglichst gut komprimiert im Flash abzulegen. Sobald das Programm läuft, 
kann ich die Bilder entpacken und vom Flash ins RAM kopieren.
Kennt jemand eine Library für eingebettete Systeme ohne Betriebssystem, 
die PNGs dekodieren kann?

Grüße

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Das mittlerweile patentfreie GIF-Format ist hier vielleicht besser 
geeignet. Zwar wird es nicht die allerhöchsten Kompressionsraten 
erzielen, dafür ist es aber um Größenordnungen simpler umzusetzen als 
PNG.

Der englische Wikipedia-Eintrag beschreibt das Format recht gut:
http://en.wikipedia.org/wiki/Graphics_Interchange_Format

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Mars schrieb:

> Kennt jemand eine Library für eingebettete Systeme ohne Betriebssystem,
> die PNGs dekodieren kann?

libpng lässt sich zumindest compilieren.  pngtest bringt es aber auf
stolze:

% arm-elf-size pngtest
   text    data     bss     dec     hex filename
 348044    2488    1604  352136   55f88 pngtest

Da hängt allerdings der ganze stdio-Krempel mit drin, wie's scheint.

von Stefan N. (nollsen)


Lesenswert?

hi

da gabs mal ein pico png / tiny png projekt, das in einer c datei ohne 
ext abhängigkeiten ein png dekodiert.

oder schau mal auf

http://members.gamedev.net/lode/projects/LodePNG/

von Mars (Gast)


Lesenswert?

An GIF habe ich auch gedacht, ich bin mir allerdings nicht sicher ob GIF 
hier das richtige Format ist, da ich z.B. einen eigenen Alpha-Kanal 
möchte.

LibPNG habe ich mir auch schon angesehen und ist in der Tat sehr 
umfangreich. Wobei man hier sicher noch einiges optimieren kann, da ich 
nur einen Dekoder brauche. Aber danke fürs austesten Jörg.

@Stefan Noll
Das sieht mir sehr vielversprechend aus. werde ich gleich mal 
ausprobieren.

Danke für eure Antworten

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.