Lowlevel

Lowlevel => Lowlevel-Coding => Thema gestartet von: bitmaster am 05. June 2006, 15:26

Titel: PNG unterstützung
Beitrag von: bitmaster am 05. June 2006, 15:26
Hi,

ich habe vor eine Unterstützung für erstmal ein Bildformat in meinem OS einzubauen. BMP ist zwar sehr einfach, aber verbraucht sehr viel Speicher. Wenn ich z.B. ein Hintergrundbild für meiner GUI in der größe 800*600 haben will, wäre das Bild 800*600*4 / 1024^2 = 1,8 MByte groß. Also zu groß für eine Diskette. Dann wollte ich das JPG Format nehmen. Ist ja wesentlich kleiner. Aber ich sah das es ziemlich die Qualität verlustet. Dann bin ich auf PNG gestosen und dachte das ist die Lösung. Kaum Qualitätsverluste und schön klein. Nur finde ich keine Brauchbaren Informationen bzw. genauere Informationen. Wikipedia spuckt ja nicht viel aus. Habt ihr vielleicht Infos zum PNG Format?

Danke!!!

bitmaster
Titel: PNG unterstützung
Beitrag von: stultus am 05. June 2006, 15:33
kurzes googlen ergab das rfc 2803 dir helfen wird ^^ http://www.faqs.org/rfcs/rfc2083.html
Titel: PNG unterstützung
Beitrag von: DarkThing am 05. June 2006, 15:35
Hi,
auf wotsit.org (http://www.wotsit.org/search.asp?page=7&s=graphics) gibts auch noch ein paar Infos. Ich glaube der erste Link da ist das gleiche wie das von N00B.
Titel: PNG unterstützung
Beitrag von: stultus am 05. June 2006, 15:37
ne, da der erste link ist libpng.org ^^ aber thx, ich kam nicht mehr auf wotsit, da wollt ich auch erst nachschauen
Titel: PNG unterstützung
Beitrag von: Termite am 05. June 2006, 18:21
Hi

Meines wissens setzt png auf einen zip alg zur kompremierung der daten. (zlib) wurde seinerzeit mal vom W3C definiert.

Hast du dir mal gif angeschaut? hat aber leider nur 256 farben. Hat aber gegenüber bmp in gleicher farbtiefe den vorteil einer kompression, die nicht ganz so kompliziert ist wie png.

http://www.w3.org/TR/PNG/

gruss
Titel: PNG unterstützung
Beitrag von: hannibal am 05. June 2006, 20:32
Verschoben.

(OS Design hat nichts mit Implementation oder Integration von Bildformaten zu tun. :P)
Titel: PNG unterstützung
Beitrag von: Svenska am 05. June 2006, 22:03
Hallo,

du könntest einfach deine Bitmaps komprimieren und wie durch eine "Pipe" zum dekomprimieren jagen. Dir geht es ja um den Diskettenspeicher, im RAM musst du eh die dekomprimierte Variante haben.

Gruß,
Svenska
Titel: PNG unterstützung
Beitrag von: stultus am 05. June 2006, 22:59
aber warum was einfaches wie bitmaps nehmen wenn man auch gleich was schönes wirksames wie png implementieren kann? find ich persönlich gut die entscheidung *png-fan*
Titel: PNG unterstützung
Beitrag von: C#ris am 06. June 2006, 09:33
Unterschätzt auf keinen Fall den Aufwand einer vernünftigen Implementierung! Die Kompression und die verschiedenen Typen sind auf jeden Fall nicht ohne!
Meiner Meinung nach ist es am Sinnvollsten, die libpng für alles zu verwenden.
Titel: PNG unterstützung
Beitrag von: bitmaster am 06. June 2006, 13:16
Hi,

danke für die vielen Antworten. Die PNG Unterstützung wollte ich schon gerne haben (brauche ich ja früher oder später sowieso). Ja, es ist richtig das die implementierung nicht so einfach ist, aber ich werde es versuchen. ^^

bitmaster
Titel: PNG unterstützung
Beitrag von: Svenska am 06. June 2006, 16:29
Wenn du in irgendeiner Form Bitmaps lesen können möchtest, musst du das Format ohnehin implementieren. Ein on-the-fly Konverter von PNG nach BMP ist wahrscheinlich einfacher zu implementieren und auch zu testen (was auch wichtig ist).

Gruß,
Svenska
Titel: PNG unterstützung
Beitrag von: nooooooooos am 06. June 2006, 18:00
Offtopic: Bitmaster wenn dus dann geschafft hast, wäre doch wieder mal ein perfektes Tutorial-Thema gefunden??? Nicht......