Internet Derazalar Android
Kengaytirmoq

RGB formatidagi rasm nima? Rang modeli RGB.

Yaqinda men kodni universal rang formatidagi konddiy rang forumiga asoslangan holda amalga oshirish uchun yozdim.

Bu erda boshqa savolga javob stackoverfiondow-da, garchi menimcha, menimcha, bu takrorlanmaydi, deb o'ylayman, shuning uchun men u bilan murojaat qilaman:

Esingizda bo'lsa, men, albatta, har bir omil uchun 5-65 formatda qanday ishlashini bilmayman. 6 bitli komponent juda aniqmi? Ushbu holatda avtomatik tizim Transformatsiya bu ishni bajaradi.

Qanday bo'lmasin, yuqoridagi kod bilan ushbu misol sizning ehtiyojlaringizni qondirishi kerak. Bu erda foydalanuvchi formatini 5-5-5-1 rgbani aylantirish uchun ishlatiladi:

// baytlar 84 21 \u003d\u003d\u003e Bin \u003d\u003d\u003e 1000 0100 00110 001110 001110 001111.1\u003e DEC \u003d\u003d\u003e 16 16 16 1 (RGBA) \u003d\u003d Stock \u003d\u003d Stock \u003d\u003d Stan Konstruktorda 128 128 255 // Kanalar: pikselga, bit miqdori va r, g, B va ma'lumotlar va ma'lumotlar endilikbozligini o'zgartirish uchun. Xususiy statik pikotteritteritterity \u003d yangi pikselturatter \u003d yangi piksori (2, 5, 11, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, FALSE); Himoyalangan statik bayt konvert16BO32B (Bayt iTT32 Watchset, int32-ning kengligi, int32 yeimgide) \u003d bayt inst3magegia \u003d yangi bayt; uchun (int32 y \u003d 0; y bayt; 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; }

Siz qilishingiz kerak bo'lgan narsa - bu 5-6-5 formatidagi bitlarning to'g'ri taqsimlanishi bilan o'z pikformangizni to'g'ri taqsimlash.

Rasmdan 16 bitli ma'lumotlarni olish va ushbu ma'lumotlarni yangi 32 bitli rasmga yozishingiz uchun haqiqatan ham siz haqiqatan ham bitmap.lock.lckbits-ga qarashingiz kerak. Ushbu javobda eslatib o'tilgan tuzatish xususiyati yozuvni qanday qayta ishlashni ko'rsatishi kerak. O'qish usuli aslida ancha oson:

///

/// xom baytni rasmdan oladi. /// /// Baytni olish uchun rasm. /// Olingan rasm ma'lumotlarining yo'nalishi. /// Rasmning xom baytlari jamoat statik bayt glitevataga (Bitmap Classivage, Cleymimage.wllockBits (0, 0, 0, 0, 0, 0, Syuntimge.hIghthBit), CourimgeMaege.phims.phide ; Bayt ma'lumotlar \u003d yangi bayt; marshal.copy (Arattoreata.can0, ma'lumotlar, ma'lumot, 0, ma'lumotlar.length)

Shuni yodda tutingki, barcha vaziyatlarda, ishlov berilmagan rasmlarning baytlarini, "qadamlar" va "kengligi" o'rtasidagi farq. Ko'pgina formatlarda rasmda bitta piksel chiziq to'rtta baytning keyingi burchagi bilan to'ldiriladi, shuning uchun siz shunchaki rasmlarni o'qiy olmaysiz va qayta ishlay olmaysiz, bu barcha rasmdagi barcha ma'lumotlarni o'z ichiga olgan qator sifatida; Ushbu kapital baytlar juda tez bo'ladi. Mening misol kodini Argb-da etkazish uchun siz haqiqatan ham buni o'z navbatida va har bir qatorda amalga oshirishingiz kerakligini va har bir qatorda siz hali ham oralig'ida bo'lgan ma'lumotlardan foydalanishingiz kerak.

Men qadamni o'zgartirishi mumkin bo'lgan barcha funktsiyalar uchun buni rad qilish tavsiya etiladi.

Eng qulay, keng tarqalgan, universal usul Rang ko'rsatkichlari - RGB. RGB - bu qisqartma (qizil yashil ko'k), ya'ni: qizil, yashil, ko'k - asosiy ranglar, boshqa barcha ranglar olingan.

RGB bilan bo'yoq bir necha jihatdan o'rnatilishi mumkin, so'ngra har biringiz haqida batafsil ma'lumot berilishi mumkin.

CSS-da funktsional rang yozuvlari formati

Funktsional formatning umumiy ko'rinishi: RGB (rang), bu erda "rang" uchta butun sonning kombinatsiyasi (0 dan 255 gacha) yoki uch foiz qiymatlari (0% dan 100% gacha) yoki vergul orqali sanab chiqadi. Keyinchalik bir nechta misollar.

RGB (255, 255, 255) / * oq rang * /
rGB (0, 0, 0) / * qora rang * /
rGB (255, 0, 0) / * qizil rang * /

RGB (100%, 100%, 100%) / * oq rang * /
rGB (0%, 0%, 0%) / * qora rang * /
rGB (100%, 0%, 0%) / * qizil rang * /

RGB va undan oldin (bo'sh joy yo'q!

Endi sarlavha matnining matni, masalan, RGB (222, 14, 100), ba'zi bir pushti yoki binafsha rangga aylantiraylik. Qo'shimcha qo'llanilish namunasi.

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

Va endi foiz qiymatlari va RGB yordamida yashil rangning bir nechta soyalarini yarating. Bu 4 misol.

4-misol, CSS kodi

P.one (Rang: RGB (0%, 20%, 0%);)
p.Two (Rang: RGB (0%, 40%, 0%);)
p.tree (rang: rgb (0%, 60%, 0%);)
p.Four (Rang: RGB (0%, 80%, 0%);)
p.Five (Rang: RGB (0%, 100%, 0%);)

Misol 4, HTML-kod

Yashil rang


Yashil rang


Yashil rang


Yashil rang


Yashil rang

Aytgancha, foizlar kassa, masalan, RGB (40,2%, 22,34%), shuning uchun rang aniqroq bo'ladi.

Agar biz qadriyatlar oralig'idan chetga chiqsak nima bo'ladi? Hech qanday maxsus narsa bo'lmaydi, shunchaki qadriyatlar eng yaqin chegaralarga sharhlanadi (0% yoki 100%, 0 yoki 255). Keyin misol beshinchi.

RGB (200%, 3100%, 101%) / * RGB (100%, 100%) * /
rGB (-200%, 0%, 12%) / * rgb (0%, 0%, 12%) * /
rGB (257, -130, 212) / * rgb bo'ladi (255, 0, 212) * /

Aytaylik, bizda quyidagi CSS kodi bor: RGB (12%, 96%, 43%) va biz foiz qiymatlarini butun sonlar qilishga majbur qilishimiz kerak. Bu juda oddiy qilingan, natijada har bir darajani 255 ga ko'paytirishingiz kerak, natijada biz matematika qoidalariga muvofiq aylanamiz va istalgan narsani olamiz: RGB (31, 245, 110).

CSS-dagi qumtin yozuv formati

Ko'pincha men juda ko'p saralash formatidan foydalanaman, bu shunchaki qisqaroq. Keyingi misol.

P (rang: #fffffff;) / * oq matn rangi * /
p (rang: # 000000;) / * qora matn rangi * /
p (rang: # ff0000;) / * qizil matn * /

RGB dan deyarli farqlar deyarli yo'q. RRGGBB ning uchta ranglari 00 dan FF gacha bo'lgan oralig'ida ko'rsatilgan (FF o'nlik tizimida 255 kishi). Ko'rinib turibdiki, raqamlar va harflar orasida bo'sh joylar va boshqa belgilar mavjud emas (shuning uchun men bu formatni ko'proq yoqtirishimning ikkinchi sababi) va o'n oltilik yozuvi panjaradan boshlanadi (#). Aytgancha, o'n oltilik formatda Hex formati deb ataladi. Bundan keyin uchta o'xshash rangdagi ranglarning misoli.

Sizda ochiladigan fayllar mavjudmi? Biz ma'lumot yig'amiz fayl formatlari Va biz sizga RGB fayllari kerakligini aytib berishimiz mumkin. Bundan tashqari, biz bunday fayllarni ochish yoki konvertatsiya qilish uchun eng mos keladigan dasturlarni tavsiya etamiz.

Nega sizga fayl formati kerak.

Standart belgilarni qo'shimcha rangli rog 'modelidan olingan rgb (qizil, yashil, ko'k), kengaytma .RGB. Fayl turi "Rang Raster RGB SGI" - SGI Image Fayl formati (SGI Image Fayl formati) ning bir qismi. Endi uning faoliyatini to'xtatdi, SGI (original kremniy grafikasi) UNIX-ga asoslangan yuqori samarali grafik stantsiyalar sohasida kashshof bo'lib, o'zining umumiy rasteratsiyasini ishlab chiqdi. To'liq SGI Raster Format xususiyatlari nashr etildi.

Fayli .RGB. Bu SGI formatidagi rogb (24 bitli rang). SGI formatidan tashqari, SGI formatida tlektrruzyonni (tezda kodlash - guruh kodlash) mavjud. Bitta faylda .RGB. Bir raster tasvir bo'lishi mumkin.



SGI RGB fayllari ko'pchilik tomonidan tan olingan va qo'llab-quvvatlanadi grafik muharrirlar va shaxsiy muhitning ko'pchiligini tomosha qilish dasturlari. Ga qo'shimcha sifatida .RGB. SGI Raster tasvirlari boshqa kengaytmalarga ega bo'lishi mumkin .RGB.a (32 bitli RGBA rasmlari) va .sgi (umumiy kengayish).

Shunga o'xshash sifatni kengaytirishda .RGB. ba'zan noyob rangning noyob formati uchun qo'llanilishi mumkin raster tasvirlari Q0 (RGB, 24-bit rang). Ushbu format, shuningdek, eng asosiy grafik tomoshabinlar / muharrirlar tomonidan tan olinadi va qo'llab-quvvatlanadi.

RGB fayllarini ochish yoki o'zgartirish dasturlari

Siz quyidagi dasturlardan foydalangan holda RGB fayllarini ochishingiz mumkin: 

RGB modeli chiqarilmagan ranglarni tavsiflaydi. U uchta asosiy (asosiy) ranglarga asoslangan: qizil (qizil), yashil (yashil) va ko'k (ko'k). RGB modeli displey uchun "tub" deb atash mumkin. Qolgan ranglar asosiy kombinatsiyasi tomonidan olinadi. Ushbu turdagi ranglar qo'shimcha deyiladi.

Uni yashil va qizil rangli kombinatsiya, sariq rangga ega, yashil va ko'k - ko'k va uchta rangning kombinatsiyasi oq rangga ega ekanligi sababli ko'rish mumkin. Shundan, RGB rangidagi ranglar tarqalishiga olib kelishi mumkin.

Asosiy ranglar Inson biologiyasidan olingan. Ya'ni, bu ranglar inson ko'zining chiroqqa fiziologik ta'siriga asoslangan. Inson ko'zlari eng yashil (m), sariq-yashil (l) va ko'k-binafsha rang (lar) yorug'ligiga ta'sir qiladigan fotoreceptor hujayralari mavjud ( maksimal uzunlik 534 Nm dan 564 Nm va 420 nm dan bo'lgan to'lqinlar mos ravishda). Inson miyasi uchta to'lqindan olingan signallardagi farqlar asosida turli xil ranglarni osongina ajratishi mumkin.

LCD yoki kompyuter monitorlari kabi LCD yoki plazma displeylarida eng keng rgb rangli model ishlatiladi. Displeyda har bir pikselda qizil, yashil va ko'k qiymat qiymatlari sifatida texnik, masalan, grafik xaritalarda taqdim etilishi mumkin. RGB qiymatlari ravshanlik uchun ishlatiladigan intensivlikda o'zgartiriladi. Kameralar va skanerlar ham xuddi shu tartibda ishlaydi, ular har bir piksel uchun turli xil rgb intensivligini ro'yxatdan o'tkazadigan sensorlar bilan raqsga tushadi.

16 bit rejimida piksel, shuningdek, yuqori darajadagi, yo 5 bitdan iborat, yo rangda 5 bitdan iborat (ko'pincha 555 rejim deb ataladi) yoki yana 565 rejimi deb nomlanadi). Yashil rang inson ko'zi boshqa ranglarga qaraganda yashil rangning ko'proq soyalarini aniqlash qobiliyatiga egaligi sababli to'ldiriladi.

RGB qiymatlari tikholel (BPP) dagi 24 bit rejimida, shuningdek, tikhelor (BPP), shuningdek, 0 dan 255 gacha bo'lgan uchta butun butun son bilan ajralib turadi. Ushbu uchta raqam mos ravishda qizil, yashil va ko'kning intensivligi.

RGB-da - uchta kanal: qizil, ko'k va yashil, i.e. RGB - uch kanalli rangli model. Har bir kanal o'n oltitadan 255 gacha qiymatlarni o'nlik yoki haqiqatga yaqin, Hekadutimal raqamlar tizimlarida eng yaqin bo'lishi mumkin. Bu kanal tomonidan kodlangan bayt, sakkiz bitdan iborat bo'lgan baytning sakkiz yoki 1 va 1 qiymatini olishi mumkinligi bilan izohlanadi va bit 28 \u003d 256. RGBda, masalan, qizil rang 256 ta sinfni olishi mumkin: Sof Red (FF) dan qora (00) gacha. Shunday qilib, RGB modelida atigi 2563 yoki 16777216 rangni o'z ichiga olganligini hisoblash juda oson.

RGBda uchta kanalda va ularning har biri 8 bitdan kodlanadi. Maksimal, FF (yoki 255) qiymat toza rang beradi. Oq rang barcha ranglarni birlashtirish orqali olinadi, aniqroq, ularning chegaralarini baholaydi. Oq kod \u003d FF (qizil) + ff (yashil) + ff (ko'k). Shunga ko'ra, kod qora \u003d 000000. kod sariq \u003d ffff00, binafsha \u003d ff00ff, ko'k \u003d 00ffff.

Bundan tashqari, 32 va 48 bit ranglarni namoyish qilish rejimlari mavjud.

RGB qog'ozda chop etish uchun ishlatilmaydi, buning o'rniga Cmik-rang maydonchasi mavjud.

CMYK - rangli bosib chiqarishda ishlatiladigan rang modeli. Rang modeli Bu butun sonlar bilan ranglarni tavsiflovchi matematik model. CMyk modeli ko'k, binafsha, sariq va qora ranglarda qurilgan.