Kezdőlap › Fórumok › Programozás › 256 színû palettás TGA fájl beolvasása?
- This topic has 5 hozzászólás, 3 résztvevő, and was last updated 20 years, 2 months telt el by
pointux.
-
SzerzőBejegyzés
-
2005-05-27-05:38 #2018464
Egy ötlet: Ha csak kevés kép van, akkor szerintem gimppel át tudod konvertálni egyenként rbg-vé, majd lemented megint.
2005-05-27-05:58 #2018465Egy ötlet: Ha csak kevés kép van, akkor szerintem gimppel át tudod konvertálni egyenként rbg-vé, majd lemented megint.
[align=right][snapback]135934[/snapback][/align]Egy tga beolvasó lib-et írok, és azt szeretném, ha a 256 színû képeket is be tudná olvasni. A 24 bit-es képeket már be tudja olvasni, csak ezzel a fránya palettás dologgal nem tudok dûlõre jutni. :blush:
2005-05-27-07:24 #2018466„Egy tga beolvasó lib-et írok, és azt szeretném, ha a 256 színû képeket is be tudná olvasni. A 24 bit-es képeket már be tudja olvasni, csak ezzel a fránya palettás dologgal nem tudok dûlõre jutni.”
Hát miért nem ezzel kezded. Ilyen libek szerintem vannak.
Kiindulásnak itt egy link:
http://www.lighthouse3d.com/opengl/terrain/index.php3?tgalib
(Ha mindenképpen konvertálni akarod, akkor aszem nekem van ilyen algoritmus c-ben, mindössze annyi a dolgod, hogy beolvasd a kontainerbe… Elõször nézd meg ezeket a libeket, keress rá a tgalib-re a gugliban, ha nem jók az eredmények, akkor küldök ilyet, ha van. Azért nem emlékszem mert már régebben foglalkoztam vele…)2005-05-27-15:33 #2018467Na sikerült! Ideírom a megoldást, hátha másnak is egyszer lesz ilyen gondja.
A TGA-nál 768 byte-os a paletta és abból kel kimazsolázgatni az 1 bájtos indexekhez tartozó RGB színinformációt. Tehát mindegyik 1 bájtos indexet meg kell még szorozni hárommal, és akkor kapom meg a palettában lévõ BGR szín B elemének indexét. Utána már csak egyesével kell léptetni, hogy megkapjam a G és R színt is. Ha BGR nem jó, akkor még egy egyszerû ciklussal meg kell fordítani, hogy RGB legyen,
😆2005-05-27-15:48 #2018468„A TGA-nál 768 byte-os a paletta és abból kel kimazsolázgatni az 1 bájtos indexekhez tartozó RGB színinformációt. Tehát mindegyik 1 bájtos indexet meg kell még szorozni hárommal”
Erre gondolsz nem? (Vagy valamilyen hasonlóra)
image_rgb[ i ] = palette[ image_palette[ i ] * 3 ]; // R
image_rgb[ i + 1] = palette[ image_palette[ i ] * 3 + 1 ]; // G
image_rgb[ i + 2] = palette[ image_palette[ i ] * 3 + 2 ]; // B
i 0-tól w * h -ig
(Vagy BGR, ha úgy van tárolva)2009-12-04-19:57 #1879737A 256 színû TGA fájloknál van egy paletta a fejléc után. Ez a paletta tartalmazza a színeket. A paletta után pedig pixelenként 1 bájtos indexek vannak, amik a paletta egy elemére mutatnak. A kérdésem, hogy az 1 bájtos paletta színt hogyan tudom RGB (3 bájtos) formába alakítani? :blink: :huh:
Ja egyébként OpenGL-es textúrázáshoz kellene, hogy RGB vagy BGR formátumban legyenek az egyes pixelek színei.
Elõre is köszi a segítséget! B)
-
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
legutóbbi hsz