- Samsung Galaxy A56 - megbízható középszerűség
- Megérkezett a Samsung Galaxy A37 és Galaxy A57
- Visszatérhet a csepp notch és a 90 Hz
- Samsung Galaxy S23 Ultra - non plus ultra
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- MWC 2026: Óriásakkut tuszkoltak egy szupervékony hajlíthatóba
- Vivo X300 Pro – messzebbre lát, mint ameddig bírja
- Apple iPhone 13 Pro Max - őnagysága
- Poco F8 Pro – titkos favorit lehet belőle
- Telekom mobilszolgáltatások
Új hozzászólás Aktív témák
-
thon73
tag
Úgy tűnik, mindig túlságosan elvarázsolt problémákkal találkozom...

Hátha mégis valaki beleütközik ugyanebbe, megválaszolom magamnak.
Megdöbbentő módon az Android valójában csak kétféle módon tudja a bitmap színeket kezelni: ARGB_8888 és RGB_565 kódolással. (Létezik, de nem javasolt az ARGB_4444. Létezik, de nem működik a getPixel() metódussal az ALPHA_8)
(((Nekem még nem okozott problémát, de a megjelenítés ált. RGB_565-tel történik, vagyis valahol az ARGB_8888 mindig átalakításra kerül.)))Egy "térképet" szerettem volna megrajzolni (ezért nem jó egy tömb) 512 különböző színnel. A szinek nem lényegesek, az viszont igen, hogy pont azt a színt "vegyem ki", amit a képbe belerajzoltam. A korlátozott hely miatt arra gondoltam, hogy valamelyik helytakarékosabb kódolást fogom választani.
Ez viszont egyáltalán nem egyszerű, mert a getPixel által visszaadott alapszínek(R,G,B) mindig 256 árnyalat terjedelműek lesznek - nem pedig a kódolással azonosak. Továbbra sem találtam metódust a "raw" színérték megszerzésére.ARGB_8888 alatt persze minden tökéletesen működik, hiszen itt minden alapszín 256 árnyalattal kódolt. Ehhez azonban dupla hely kell...
ARGB_4444 alatt az alapszinek 4 bit terjedelműek, vagyis 16 árnyalatuk van. Ha azonos színt akarunk visszaszerezni, akkor a szinek 4 bites értékét dupláznunk kell: 2->22 8->88 c->cc (hexában). Az ilyen, hexában azonos számjegyekkel bíró színeket megadva (pont 16 van) ugyanazt a színértéket kapjuk a getPixellel, mint amivel rajzoltunk.
Persze, semmi nem elég, nekem az RGB_565 kódolású rajzból kellett azonos színeket kiszednem. A source kód a dithering miatt elég elvarázsolt, nehéz kideríteni, hogy pontosan hogyan kódol, ill. sokkal összetettebben kódol, mint amire ehhez a feladathoz szükség van. Matematikailag a következő összefüggést találtam:
5 bites szinek - R és B, 32 árnyalat: setPixel( árnyalat * 8 + 5 ) beállítás után a getPixel() / 8 visszaadja az eredeti árnyalatot.
6 bites szín - G, 64 árnyalat: setPixel( árnyalat * 4 + 2 ) beállítás után a getPixel() / 4 szintén az eredeti árnyalatot adja vissza. ((Megjegyzem, az első 32 árnyalatra az előző összefüggés is működik))Bocs, ha valakit untattam ezzel, de nekem hosszas fejtörést okozott, hogy megtaláljam azokat a színeket, amiket beállítva ugyanazt az értéket kapom vissza. Megjegyzem, hogy több különböző alapszín árnyalatot ezek a kódolások nem is tudnak tárolni, az összes többi "bemeneti" szín ezen árnyalatok valamelyikére redukálódik.
Még annyit tennék hozzá, hogy amennyi info-t találtam, az Android ebben is elég egyedi. Vannak 565-888 színkódolás átalakítások, de mintha az android egyiket sem követné, hanem valami saját algoritmusa lenne.

Új hozzászólás Aktív témák
- Samsung Galaxy A56 - megbízható középszerűség
- Kerékpárosok, bringások ide!
- Path of Exile (ARPG)
- E-roller topik
- gban: Ingyen kellene, de tegnapra
- Véleményes teszt bizonygatja mennyit ér a Macbook Neo 8 GB RAM-ja
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- Samsung Galaxy Felhasználók OFF topicja
- Multimédiás / PC-s hangfalszettek (2.0, 2.1, 5.1)
- Megérkezett a Samsung Galaxy A37 és Galaxy A57
- További aktív témák...
- Asztali PC i7 13700K RX 7900 GRE 32GB DDR5 1TB NVME
- Nintendo Switch 2, dobozában, játékkal, ajándék tokkal és kiegészítőkkel, 6 hónap garanciával eladó!
- HP PROBOOK X360 11 G5 N5030 /8GB/256 GB SSD/11.6" Hd Touch laptop+tablet garanciás
- MSI GeForce RTX 4080 SUPER GAMING X SLIM 16G - Alza garancia 2027.01.31 - BESZÁMÍTOK!
- Prémium Tápegységek Yó árasítva Ingyen Fox-al érdekelnek?
- Apple iPhone 13 128GB, Kártyafüggetlen, 1 Év Garanciával
- Apple iPhone 16 Plus Pink 128GB használt karcmentes 94% akku (316 ciklus) 6 hónap garancia
- Intel Core i5-9500 / i7-8700T / i7-8700 / i7-9700 /i5-10500T processzorok- számla, garancia
- Samsung Galaxy Tab A7 Lite 32GB, Kártyafüggetlen, 1 Év Garanciával
- M5! KÉSZLETKISÖPRÉSI ULTRAAKCIÓ!!! SPACE BLACK MacBook Pro 14" M5!!! 10C/10G 16GB 512GB Gar!
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest




