256 színû palettás TGA fájl beolvasása?

Kezdőlap Fórumok Programozás 256 színû palettás TGA fájl beolvasása?

6 bejegyzés megtekintése - 1-6 / 6
  • Szerző
    Bejegyzés
  • #2018464
    pointux
    Felhasználó

      Egy ötlet: Ha csak kevés kép van, akkor szerintem gimppel át tudod konvertálni egyenként rbg-vé, majd lemented megint.

      #2018465
      admin
      Adminisztrátor

        Egy ö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:

        #2018466
        pointux
        Felhasználó

          „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…)

          #2018467
          admin
          Adminisztrátor

            Na 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,
            😆

            #2018468
            pointux
            Felhasználó

              „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)

              #1879737
              csaba
              Felhasználó

                A 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)

              6 bejegyzés megtekintése - 1-6 / 6
              • Be kell jelentkezni a hozzászóláshoz.