Algoritmus spočítání všech unikátních barev v bitmapě – Pascal – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Algoritmus spočítání všech unikátních barev v bitmapě – Pascal – Fórum – Programujte.comAlgoritmus spočítání všech unikátních barev v bitmapě – Pascal – Fórum – Programujte.com

 

JoDiK
~ Anonymní uživatel
987 příspěvků
7. 2. 2012   #1
-
0
-

Tato funkce je v bitmapovém editoru PaintShopPro a ať přemýšlím jak přemýšlím, nenapadá mě jak to elegantně a rychle udělat. Když má obrázek barevnou hloubku 24b (16,7 milionu barev) jak spočítat kolik kombinací RGB bylo opravdu použitých? Napadá někoho nějaký chytrý algoritmus? Mně napadlo jenom vynulované bitové pole s 16,7 miliony položek (cca 2MB paměti), což by se ale zřejmě muselo udělat jako pole s 2097152 položkami typu BYTE a pro každý bod bitmapy zapsat bit 1 na vypočítaném indexu a bitu podle té barvy a pak spočítat kolik je tam jedniček.
Pokud si dobře vzpomínám, bylo to už ve verzi 3.0, která běhala na Win3.11 s 4MB paměti a nebylo to nijak extra pomalé nebo žeby to nějak mohutně swapovalo, aby měl kam nacpat ty 2MB dat.

Nahlásit jako SPAM
IP: 88.103.236.–
KIIV
~ Moderátor
+43
God of flame
7. 2. 2012   #2
-
0
-

mohl to byt klidne spojovy seznam nebo nejaky algoritmus razeni nad body a projet ruzne, nebo binarni strom s pocitanim zasahu... tak jak tak vis ze nebude vic barev nez je pixelu v obrazku

Nahlásit jako SPAM
IP: 94.112.32.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Pudni tvor+2
Stálý člen
7. 2. 2012   #3
-
0
-
Nahlásit jako SPAM
IP: 90.180.213.–
Mircosoft+1
Věrný člen
8. 2. 2012   #4
-
0
-

To bitové pole vypadá rozumně. Obrázek se klidně může odswapovat na disk, protože se stejně bude číst lineárně (po nějakých rozumných blocích, aby to moc nezpomalovalo) a do paměti se dá to pole. 2 MB není nic strašného.

Nahlásit jako SPAM
IP: 212.118.224.–
Chceš-li lepší odpověď, polož lepší otázku.
Moje stránka.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 20 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý