internetul Windows. Android

Care este imaginea în format RGB. Modelul de culoare RGB.

Am scris recent codul pentru a face exact acest lucru, pe baza convertorului de format universal Color Scummvm.

Răspunsul la o altă întrebare este pe Stackoverflow și deși întrebarea este, în opinia mea, nu este un duplicat, cred că răspunsul este, așa că îl voi contacta:

Amintiți-vă, cu siguranță nu știu cum multiplicatorul pentru fiecare factor funcționează în format 5-6-5. Este componenta pe 6 biți, chiar mai precisă? În acest caz sistem automat Transformarea va efectua această lucrare.

În orice caz, cu codul de mai sus, acest exemplu trebuie să satisfacă cel mai bine nevoile dvs. Aici este folosit pentru a converti formatul utilizatorului 5-5-5-1 RGBA:

// byts 84 21 \u003d\u003d\u003e 0x8421 (be) \u003d\u003d bin \u003d\u003d\u003e 1000 0100 0010 0001 \u003d\u003d Split \u003d\u003d\u003e 10000 10000 10000 1 \u003d\u003d Dec \u003d\u003d\u003e 16 16 16 1 (RGBA) \u003d\u003d Reglarea \u003d\u003d \u003e 128 128 128 255 // Valorile în constructor sunt: \u200b\u200bocteți per pixeli, cantitatea de biți și cantitatea de a trece pentru obținerea R, G, B și a componentelor și a datelor endianness. Pixelformatter static privat șaisprezeceformatter \u003d New Pixelformatter (2, 5, 11, 5, 6, 5, 1, 1, 0, FALSE); Protejat Byte Convert16BTO32B (Byte imageata, INT32 Startoffset, INT32 Lățime, Int32 Înălțime, Ref Int32 Stride) (INT32 Newimagestridă \u003d lățime * 4 ;; Byte Newimageda \u003d Byte nou; pentru (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; }

Tot ce trebuie să faceți este să vă definiți propriul pixformatter cu distribuția corectă a biților pentru formatul 5-6-5.

Chiar trebuie să vă uitați în Bitmap.Lockbits () pentru a obține date sursă pe 16 biți din imagine și scrieți aceste date într-o nouă imagine de 32 de biți ARGB. Caracteristica mea de construcție menționată în acest răspuns ar trebui să demonstreze modul de procesare a procesului. Metoda de citire este de fapt mult mai ușoară:

///

/// primește octeții brute dintr-o imagine. /// /// Imaginea pentru a obține octeții de la. /// Pasul de date de imagine preluate. /// Octeții brute ai imaginii Byte static GetIMAGAGATA (Bitmap SourceIMAGE, INT32 STRIDE) (Bitmapdata Sourceata \u003d SourceImage.LockBits (noul dreptunghi (0, 0, Sourceimage.Width, SourceImage.Aight), imaglockmode.readonly, Sourceimage.pixelFormat); Stride \u003d Sourcedata.Stride ; Date de byte \u003d Byte nou, Mareșal.Copy (Sourceata.Can0, Date, 0, Data.Langth); Surceimage.unlockbits (Sourceata); Date de retur;)

Rețineți că în toate situațiile când editați octeți de imagini netratate, diferența dintre "pașii" și "lățimea". În multe formate, o linie de pixeli din imagine este completată de următoarea plină a celor patru octeți, astfel încât să nu puteți citi și procesați-o ca o matrice, care presupune toate datele de imagine; Acești octeți de capital vor fi foarte rapizi. După cum se arată în codul meu exemplu pentru a converti formatul meu de 16bpp în Argb, într-adevăr trebuie să faceți acest lucru la rândul său, iar în fiecare linie, asigurați-vă că utilizați numai datele care sunt încă în intervalul (lățimea * octeți per pixeli).

Am observat că pentru toate funcțiile care pot schimba pasul, se recomandă specificarea acestuia ca Ref.

Cel mai convenabil, comun, universal mod Indicații de culoare - RGB. RGB este o abreviere (albastru roșu roșu), ceea ce înseamnă: culori roșii, verzi, albastre, prin combinarea pe care se obțin toate celelalte culori.

Culoarea cu RGB poate fi instalată în mai multe moduri, apoi în detaliu despre fiecare.

Format de înregistrare a culorilor funcționale în CSS

Vederea generală a formatului funcțional: RGB (culoarea), unde "culoarea" este o combinație de trei numere întregi (de la 0 la 255) sau trei valori procentuale (de la 0% la 100%) enumerate printr-o virgulă. Apoi, câteva exemple.

RGB (255, 255, 255) / * culoare albă * /
rGB (0, 0, 0) / * Culoare neagră * /
rGB (255, 0, 0) / * culoare roșie * /

RGB (100%, 100%, 100%) / * culoare albă * /
rGB (0%, 0%, 0%) / * culoare neagră * /
rGB (100%, 0%, 0%) / * roșu culoare * /

După RGB și înainte (nu există spațiu!

Acum, să facem textul textului antetului cu o culoare randomică, de exemplu RGB (222, 14, 100), este un fel de culoare roz sau purpuriu. În continuare un exemplu de aplicare.

H1 (
Culoare: RGB (222, 14, 100);
}

Și acum, cu ajutorul valorilor dobânzii și RGB, creați câteva nuanțe de verde. Acesta este un exemplu 4.

Exemplul 4, codul CSS

P.ONE (Culoare: RGB (0%, 20%, 0%);)
p.TWO (Culoare: RGB (0%, 40%, 0%);)
p.three (culoare: rgb (0%, 60%, 0%);)
p.fur (culoare: RGB (0%, 80%, 0%);)
p.FIVE (Culoare: RGB (0%, 100%, 0%);)

Exemplul 4, codul HTML

Verde


Verde


Verde


Verde


Verde

Apropo, procentele pot fi scrise fracționate, de exemplu, RGB (40,2%, 22,34%, 12%), astfel încât culoarea va fi mai precisă.

Și ce se întâmplă dacă mergem dincolo de gama de valori? Nu va exista nimic deosebit, doar valori vor fi interpretate la cele mai apropiate limite (0% sau 100%, 0 sau 255). Apoi, un exemplu este al cincilea.

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

Să presupunem că avem următorul cod CSS: RGB (12%, 96%, 43%) și trebuie să traducem valorile de interes în numere întregi. Acest lucru se face foarte simplu, trebuie să multiplicați fiecare nivel cu 255 și apoi împărțit la 100, ca rezultat obținem RGB (30,6, 244,8, 109,65), după ce suntem rotunzi conform regulilor matematicii și obțineți dorit: RGB (31, 245, 110).

Format de înregistrare a culorilor de culori în CSS

Eu folosesc cel mai adesea formatul cu precizie hexazecimal, este doar mai scurt. Mai exemplu.

P (culoare: #fffffffffffffffffffffffffff* /
p (Culoare: # 000000;) / * Culoarea textului negru * /
p (Culoare: # FF0000;) / * Text roșu * /

Nu există aproape nicio diferență față de RGB. Cele trei culori ale RRRGGBB sunt specificate în intervalul de la 00 la FF (FF este de 255 în sistemul zecimal). După cum puteți vedea, între numere și litere nu există spații și alte semne (al doilea motiv pentru care îmi place acest format mai mult) și codul hexazecimal începe cu grila (#). Apropo, formatul hexazecimal este numit format hex. Mai mult, un exemplu de trei culori identice care sunt scrise în trei moduri.

Aveți o problemă cu fișierele de deschidere.rgb? Colectăm informații despre formate de fișiere Și putem spune ce aveți nevoie de fișiere RGB. În plus, recomandăm programe care sunt cele mai potrivite pentru deschiderea sau convertirea acestor fișiere.

De ce aveți nevoie de fișierul Format.Rgb?

Derivate din denumirea standard a aditivului model de culoare RGB (roșu, verde, albastru), extensie .rgb. În legătură cu tipul de fișier "Color Raster Image RGB SGI" - o parte a unui format mai larg de fișier imagine SGI (Format de fișier imagine SGI). Acum și-a oprit activitățile, SGI (original Silicon Graphics) a fost un pionier în domeniul stațiilor grafice de înaltă performanță bazate pe Unix și și-a dezvoltat propriul format de raster comun. A fost publicată o specificație Format Raster Full SGI.

Fişier .rgb. Este o imagine a imaginii de culoare RGB (culoarea pe 24 de biți) în format SGI. În plus față de modul necomprimat, formatul SGI asigură, de asemenea, compresia RLE (codarea grupului de codificare a lungimii de rulare). Într-un singur dosar .rgb. Este posibil să existe o imagine raster.



Fișierele SGI RGB sunt recunoscute și susținute de cele mai de bază editori grafici și programe de vizualizare în majoritatea mediilor personalizate. Pe lângă .rgb. Imaginile SGI raster pot avea alte extensii, și anume .rgb.a (Imagini RGBA pe 32 de biți) și .sgi (expansiune globală).

În expansiunea similară a calității .rgb. se poate întâlni uneori cu format tipic aplicat la rare imagini raster. Q0 (RGB, culoarea pe 24 de biți). Acest format este, de asemenea, recunoscut și susținut de cei mai mulți spectatori grafici de bază / editori.

Programe pentru deschiderea sau convertirea fișierelor RGB

Puteți deschide fișiere RGB utilizând următoarele programe: 

Modelul RGB descrie culorile emise. Se bazează pe trei culori principale (de bază): roșu (roșu), verde (verde) și albastru (albastru). Modelul RGB poate fi numit "Nativ" pentru afișaj. Culorile rămase sunt obținute printr-o combinație de bază. Culorile de acest tip sunt numite aditivi.

Se poate observa din desenul că combinația de verde și roșu dă culoare galbenă, o combinație de albastru verde și albastru și o combinație a tuturor celor trei culori este albă. Din aceasta se poate concluziona că culorile din RGB sunt subtractive.

Principalele culori sunt preluate din biologia umană. Adică aceste culori se bazează pe răspunsul fiziologic al ochiului uman la lumină. Ochiul uman are o celule fotoreceptor care reacționează la cel mai verde (m), galben-verde (L) și albastru-violet (e) lungime maxima Valuri de la 534 nm, 564 nm și respectiv 420 nm). Creierul uman poate distinge cu ușurință o gamă largă de culori diferite bazate pe diferențe în semnalele obținute din trei valuri.

Cel mai larg modelul de culoare RGB este utilizat în afișaje LCD sau cu plasmă, cum ar fi un televizor sau un monitor de calculator. Fiecare pixel de pe afișaj poate fi prezentat în interfața hardware (de exemplu, hărți grafice) ca valori ale roșu, verde și albastru. Valorile RGB sunt modificate în intensitatea, care sunt utilizate pentru claritate. Camerele și scanerele funcționează, de asemenea, în aceeași ordine, ele captează culoarea cu senzori care înregistrează diverse intensitate RGB pentru fiecare pixel.

În modul 16 biți, pixelul, cunoscut și sub numele de HighColor, are fie 5 biți pe culoare (denumit adesea modelul 555), fie cu un bit suplimentar pentru verde (cunoscut sub numele de modelul 565). Culoarea verde este suplimentată datorită faptului că ochiul uman are capacitatea de a identifica mai multe nuanțe de verde decât orice altă culoare.

Valorile RGB prezentate în modul de 24 biți pe pixeli (BPP), cunoscuți și sub numele de TrueColor, sunt, de obicei, distinse de trei numere între 0 și 255. Fiecare dintre aceste trei numere este intensitatea roșie, verde și albastră, respectiv.

În RGB - trei canale: roșu, albastru și verde, adică RGB - model de culoare cu trei canale. Fiecare canal poate lua valori de la 0 la 255 în zecimal sau, mai aproape de realitate, de la 0 la FF în sistemele de număr hexazecimal. Acest lucru se explică prin faptul că octetul, care este codificat de canal și, într-adevăr, orice octet constă din opt biți, iar bitul poate lua 2 valori 0 sau 1 și strâns 28 \u003d 256. În RGB, de exemplu, o culoare roșie poate dura 256 de gradări: de la pur roșu (FF) la negru (00). Astfel, este ușor să calculați că modelul RGB conține doar 2563 sau 16777216 culori.

În RGB, trei canale și fiecare este codificată de 8 biți. Maximum, FF (sau 255) Valoarea oferă o culoare pură. Culoarea albă se obține prin combinarea tuturor culorilor, mai precis, gradațiile lor limită. Cod alb \u003d FF (roșu) + FF (verde) + FF (albastru). În consecință, codul este negru \u003d 000000. Codul este galben \u003d FFFF00, purpuriu \u003d ff00ff, albastru \u003d 00ffff.

Există și 32 și 48 de moduri de afișare a culorilor.

RGB nu este utilizat pentru imprimarea pe hârtie, în schimb, există un spațiu CMYK-Color.

CMYK este modelul de culoare utilizat în imprimarea color. Modelul de culoare Este un model matematic pentru descrierea culorilor cu numere întregi. Modelul CMYK este construit pe culori albastre, violet, galben și negru.