az internet ablakok Android

Mi a kép az RGB formátumban. Színes modell RGB.

Nemrég írtam a kódot, hogy pontosan ezt tegye, az Univerzális Color Format Converter Scummvm alapján.

A válasz egy másik kérdésre itt van a Stackoverflow, és bár a kérdés véleményem szerint nem másolat, azt hiszem, a válasz az, így kapcsolatba lépek vele:

Ne feledje, határozottan nem tudom, hogy az egyes tényezők multiplikátora 5-6-5 formátumban működik. A 6 bites komponens csak pontosabb? Ebben az esetben automatikus rendszer A transzformáció elvégzi ezt a munkát.

Mindenesetre a fenti kóddal ez a példa kielégíti az Ön igényeit. Itt használják a felhasználói formátum 5-5-5-1 RGBA átalakítására:

// byts 84 21 \u003d\u003d\u003e 0x8421 (be) \u003d\u003d bin \u003d\u003d\u003e 1000 0100 0010 0001 \u003d\u003d osztva \u003d\u003d\u003e 10000 10000 10000 1 \u003d\u003d dec \u003d\u003d\u003e 16 16 16 1 (RGBA) \u003d\u003d állítható \u003d\u003d \u003e 128 128 128 255 // A konstruktorok értékei: bájtok a pixelenként, a bitek mennyisége és az R, G, B és az összetevők, valamint az adatok endianness. Privát statikus Pixelformatter SixTeenBppFormatter \u003d Új Pixelformatter (2, 5, 11, 5, 6, 5, 1, 1, 0, FALSE); Védett statikus byte convert16bto32b (byte imagedata, int32 startoffset, int32 szélesség, int32 magasság, ref int32 lépés) (int32 newimagestride \u003d szélesség * 4 ;; byte Newimagedata \u003d új byte; az (int32 y \u003d 0; y)< height; y++) { for (Int32 x = 0; x < width; x++) { Int32 sourceOffset = y * stride + x * 2; Int32 targetOffset = y * newImageStride + x * 4; Color c = SixteenBppFormatter.GetColor(imageData, startOffset + sourceOffset); PixelFormatter.Format32BitArgb.WriteColor(newImageData, targetOffset, c); } } stride = newImageStride; return newImageData; }

Mindössze annyit kell tennie, hogy meghatározza a saját pixelformatteredet a bitek megfelelő eloszlásával 5-6-5.

Tényleg meg kell néznie a bitmap.lockbits (), hogy forrás 16 bites adatokat kapjon a képről, és írja be ezeket az adatokat egy új 32 bites kép argb. Az ebben a válaszban említett buildimage funkciónak meg kell mutatnia a rekord feldolgozását. Az olvasási módszer valójában sokkal könnyebb:

///

/// Megkapja a nyers bájtot egy képből. /////// /// A kép, hogy megkapja a bájtokat. /// A letöltött képadatok lépése. /// A kép nyersbájtja Nyilvános Statikus Byte Getimagedata (bitmap forrás, INT32 STRIDE) (bitmapdata sourcedata \u003d forrásmage.hockbits (új téglalap (0, 0, forrás.szélesség, forrásmage.height, forrásmode.readonly, forrás.pixelformat); Strip \u003d Sourcedata.Stride ; Byte adatok \u003d új byte; marsall.copy (sourcedata.scan0, adatok, 0, data.lengnth); forrásImage.UnLockbits (sourcedata); visszaadási adatok;)

Kérjük, vegye figyelembe, hogy minden helyzetben, amikor a kezeletlen képek bájtjait szervez, a "lépések" és a "szélesség" közötti különbség. Sok formátumban a képen egy pixelvonalat kiegészíti a négy bájt következő hajtásához, így nem egyszerűen elolvashatja és feldolgozza azt tömbként, amely az összes képadatot feltételezi; Ezek a tőkebonták nagyon gyorsan lesznek. Amint az a példakódon látható, hogy az 16BPP formátumot az argb-ben konvertálja, tényleg meg kell tennie ezt viszont, és minden egyes sorban győződjön meg róla, hogy csak azokat használja, amelyek még mindig a tartományban vannak (szélesség * bájt / pixelenként).

Észrevettem, hogy minden olyan funkcióhoz, amely megváltoztathatja a lépést, javasoljuk, hogy ref.

A legmegfelelőbb, gyakoribb, univerzális út Színes jelzések - RGB. Az RGB egy rövidítés (piros zöld kék), ami azt jelenti: piros, zöld, kék alapú színek, kombinálva, hogy minden más színt kapjunk.

Az RGB színét többféleképpen lehet felszerelni, majd részletesen.

Funkcionális színes felvételi formátum CSS-ben

A funkcionális formátum általános nézete: RGB (szín), ahol a "szín" három egész szám (0 és 255 között), vagy három százalékértékű (0% -tól 100% -ig) vesszővel történik. Ezután néhány példát.

RGB (255, 255, 255) / * fehér szín * /
rGB (0, 0, 0) / * fekete szín * /
rGB (255, 0, 0) / * piros szín * /

RGB (100%, 100%, 100%) / * fehér szín * /
rGB (0%, 0%, 0%) / * fekete szín * /
rGB (100%, 0%, 0%) / * piros szín * /

RGB után és korábban (nincs hely!

Most készítsük el a fejléc szöveg szövegét néhány véletlenszerű színnel, például RGB (222, 14, 100), valamilyen rózsaszín vagy lila színű. További példa az alkalmazásra.

H1 (
Szín: RGB (222, 14, 100);
}

És most az érdekértékek és az RGB segítségével hozzon létre egy pár zöld árnyalatot. Ez egy 4. példa.

4. példa, CSS kód

P.ONE (szín: RGB (0%, 20%, 0%);)
p.two (szín: RGB (0%, 40%, 0%);)
p.Three (szín: RGB (0%, 60%, 0%);)
p.Four (Szín: RGB (0%, 80%, 0%);)
p.Five (Szín: RGB (0%, 100%, 0%);)

4. példa, HTML kód

Zöld


Zöld


Zöld


Zöld


Zöld

By the way, a százalékok írhatók frakcionálás, például RGB (40,2%, 22,34%, 12%), így a szín pontosabb lesz.

És mi történik, ha túlmutatunk az értékválasztékon? Semmi sem lesz különleges, csak az értékeket értelmezik a legközelebbi határokra (0% vagy 100%, 0 vagy 255). Ezután egy példa az ötödik.

RGB (200%, 3100%, 101%) / * lesz RGB (100%, 100%, 100%) * /
rGB (-200%, 0%, 12%) / * lesz RGB (0%, 0%, 12%) * /
rGB (257, -130, 212) / * lesz RGB (255, 0, 212) * /

Tegyük fel, hogy a következő CSS-kód: RGB (12%, 96%, 43%), és a kamatértékeket egész számokba kell fordítani. Ez nagyon egyszerűen végezhető, hogy megszorozzon minden szintet 255-rel, majd 100-mal megosztott, ezért RGB-t (30,6, 244,8, 109,65) kapunk, miután a matematika szabályai szerint kerekítettünk, és megkapjuk a kívánt: RGB (31, 245, 110).

Csendes színes felvételi formátum CSS-ben

A leggyakrabban pontosan hexadecimális formátumot használok, csak rövidebb. További példa.

P (szín: #FFFFFF;) / * fehér szöveg szín * /
p (szín: # 000000;) / * fekete szöveg szín * /
p (szín: # FF0000,) / * piros szöveg * /

Az RGB szinte nincs különbsége. Az RRGGBB három színét a 00-tól az FF-ig terjedő tartományban (FF 255 a decimális rendszerben). Amint láthatja, a számok és a betűk között nincsenek szóközök és egyéb jelek (a második ok, amiért tetszik ez a formátum), és a hexadecimális kód a rács (#) kezdődik. By the way, hexadecimális formátumot hex formátumnak nevezik. Továbbá három azonos színű példa, amelyet három módon írnak.

Van egy probléma a nyitott.RGB fájlokkal? Információt gyűjtünk fájlformátumok És meg tudjuk mondani, hogy szüksége van RGB fájlokra. Ezenkívül javasoljuk azokat a programokat, amelyek alkalmasak az ilyen fájlok megnyitására vagy konvertálására.

Miért van szüksége fájlformátum.rgb?

Az RGB (piros, zöld, kék), kiterjesztés standard megjelöléséből származik .rgb. A "Color Raster Image RGB SGI" fájl típusához kapcsolódik - egy szélesebb SGI képfájl formátumának része (SGI képfájlformátum). Most megállította tevékenységét, az SGI (eredeti szilícium grafikája) úttörő volt a UNIX-n alapuló nagy teljesítményű grafikus állomások területén, és saját közös raszteres formátumát fejlesztette ki. A teljes SGI raszteres formátum specifikációt közzétették.

Fájl .rgb. Ez egy színes raszter kép RGB (24 bites szín) az SGI formátumban. A tömörítetlen mód mellett az SGI formátum is biztosítja a RLE-tömörítést (futtatási hossza kódolás - csoportkódolás). Egy fájlban .rgb. Lehet, hogy egy raszteres kép.



Az SGI RGB fájlokat a legalapvetőbbak felismerik és támogatják grafikus szerkesztők és a programok többségének megtekintésére szolgáló programok. Továbbá .rgb. Az SGI raszterképek más kiterjesztésekkel rendelkezhetnek, nevezetesen .rgb.a (32 bites RGBA képek) és .sgi (átfogó terjeszkedés).

Hasonló minőségi bővítésben .rgb. néha megfelelnek a ritka színformátumra raszteres képek Q0 (RGB, 24 bites szín). Ezt a formátumot a legtöbb alapvető grafikus nézők / szerkesztők is felismerik és támogatják.

Az RGB fájlok megnyitásához vagy konvertálásához szükséges programok

Az RGB fájlokat a következő programok segítségével nyithatja meg: 

Az RGB modell leírja a kibocsátott színeket. Három fő (alapvető) színeken alapul: piros (piros), zöld (zöld) és kék (kék). Az RGB modell "natívnak" nevezhető a kijelzőn. A fennmaradó színeket az alapvető kombinációval kapják meg. Az ilyen típusú színeket adaléknak nevezik.

A rajzból látható, hogy a zöld és a piros kombináció sárga színű, zöld és kék kék kombinációja, és mindhárom szín kombinációja fehér. Ebből arra a következtetésre juthatunk, hogy az RGB színek szubtractive.

A fő színek az emberi biológiából származnak. Ez az, hogy ezek a színek az emberi szem fiziológiai válaszán alapulnak a fény felé. Az emberi szemnek van egy fotoreceptor sejtjei, amelyek a legtöbb zöld (M), sárga-zöld (L) és kék-lila (ek) fényre reagálnak ( maximális hossza 534 nm-es, 564 nm-es és 420 nm-es hullámok). Az emberi agy könnyen megkülönböztetheti a különböző színek széles választékát a három hullámból származó jelek különbségei alapján.

A legszélesebb RGB színmodellt LCD vagy plazmákban, például TV-hez vagy számítógépes monitorban használják. A kijelzőn a kijelzőn megjelenhet a hardver interfészen (például grafikus térképek), mint a piros, zöld és kék értékek. Az RGB értékek az intenzitásban megváltoznak, amelyet az egyértelműség érdekében használnak. A kamerák és a szkennerek ugyanabban a sorrendben is működnek, olyan szenzorokkal rögzítik, amelyek különböző RGB intenzitást regisztrálnak minden egyes képponthoz.

16 bites üzemmódban a pixel, más néven HighColor, akár 5 bites színű (gyakran 555 üzemmód), vagy egy további bit zöld színű (565 üzemmódban). A zöld színt kiegészítik annak a ténynek, hogy az emberi szem képes több zöld árnyalatot azonosítani, mint bármely más szín.

A 24 bites üzemmódban bemutatott RGB-értékeket a pixel (BPP), más néven Truecolor néven ismert, általában három egész 0 és 255 közötti számmal megkülönbözteti. Mindhárom szám a piros, zöld és kék intenzitása.

RGB-ben - három csatorna: piros, kék és zöld, vagyis. RGB - háromcsatornás színmodell. Minden csatorna 0-tól 255-ig tarthat a tizedes vagy a valóság közelebbig, 0-tól az FF-ig hexadecimális számrendszerekben. Ezt magyarázza az a tény, hogy a csatorna által kódolt bájt, és valójában minden bájt nyolc bitből áll, és a bit 2 értéket 0 vagy 1 értéket és 28 \u003d 256 értéket tartalmazhat. Az RGB-ben például egy piros szín 256 fokozatot vehet igénybe: tisztán piros (FF) -ig fekete (00). Így könnyű kiszámítani, hogy az RGB modell csak 2563 vagy 16777216 színeket tartalmaz.

RGB-ben három csatorna, és mindegyik 8 bit által kódol. Maximum, FF (vagy 255) Az érték tiszta színt ad. A fehér színt úgy kapják meg, hogy minden színt ötvözi, pontosabban, a határértékek. Fehér kód \u003d FF (piros) + ff (zöld) + ff (kék). Ennek megfelelően a kód fekete \u003d 000000. A kód sárga \u003d ffff00, lila \u003d FF00FF, kék \u003d 00FFFF.

A 32 és 48 bites színek megjelenítési módjai is vannak.

Az RGB-t nem használják papírra nyomtatásra, hanem van egy CMYK-színterület.

A CMYK a színes nyomtatásban használt színmodell. Színmodell Ez egy matematikai modell, amely az egész számokkal leírja. A CMYK modell kék, lila, sárga és fekete színre épül.