Na nutnost přednásobení jsem úplně zapomněl - AlphaBlend funkci jsem naposledy používal někdy v roce 2003 v
PackView MDI.

I DiskMapa si bitmapu přednásobuje, ale pracuje s Gray+Alpha verzí. Pokud dostane 32-bit bitmapu, bude si ji muset nejdříve převést.
Pro načítání se více hodí oddělená NEpřednásobená Alpha, protože z ní lze vyrobit přednásobenou bez problému. Opačně data rekonstruovat již nejde (pro nízké Alpha se ztrácí přesnost a pro Alpha 0 nezískám nic)

Flag na přednásobení se pro líné programátory však bude hodit
ppvBits určitě přidej - nikde se nic neomezí a získá se 100% kontrola nad daty
Jen se chci zeptat: jaké formáty bitmap metoda vací? (bude potřeba vědět pro práci s ppvBits)
- Převede všechny na 32-bit ARGB/BGRA/...?
- Jak dopadne s 24-bit PNG? Alpha je v takovém případě zbytečná...
- Jak dopadne se zmíněným Grey + Alpha? Tento formát GDI ani .Net Framework nezná

(to znamená, že je ani neumím jednoduše vytvořit)
- Jak dopadne s indexovanými obrázky s paletou? Zachová se paleta a jejich indexovanost? Paleta by byla užitečnější než RGBA verze.
- Jak dopadne 8-bit Grey PNG? Vrátí se jako 24/32-bit obárzek nebo jako indexovaný obrázek s černobílou paletou? Paleta nebo jenom jednobajtové odstíny šedi by byly užitečnější.
- Je podporován
tRNS chunk? Může obsahovat průhlednou barvu (Grey/24bit) nebo Alpha hodnoty palety...
- Jak jsou podporovány 16/48/64-bit verze PNG? Třeba
tRNS chunk je potřeba porovnávat na celé 16-bit šířce, než dojde k oříznutí na 8-bit. (Aby průhledná šeď 0x
0001 nezprůhlednila i šeď 0x
0002)
(Poslední dva body považuji za zbytečnou zvrhlost - teda snad až na jednobarevnou průhlednost podobnou z GIFu. Jen chci, aby chování v těchto situacích bylo popsáno

)
K DiskMapě:
- Polštářek obsahuje:
hlavičku (velikost),
Grey bitmapu,
Alpha bitmapu,
šířku okraje (okraje se neroztahuje),
autora a název. Uvažuji ještě o různých možnostech
roztahování a tapetování.
- PNG umožňuje uložit:
hlavičku (velikost),
Grey bitmapu,
Alpha bitmapu,
autora a název. Informace o
okrajích a způsobu roztahování je třeba doplnit
odjinud.
- Možnosti PNG (uvažuji jen jednosouborová řešení):
- Uložit doplňující informace do privátního chunku a uložit jako PNG
Výhody: polštářek lze prohlížet v jiných programech; jakékoliv PNG je polštářkem.
Nevýhody: Editace privátní data ztratí; potřeba v DiskMapě ošetřit nečernobílé polštářky
- Uložit doplňující informace do privátního chunku a uložit jako PNG, ale s jinou příponou
Výhody: polštářek lze prohlížek v rozumných programech, které zjištují typ souboru z hlavičky; jiná přípona naznačuje speciální formát a bez změny přípony nelze v editorech uložit
Nevýhody: Nejasnost ohledně formátu polštářku pro běžného uživatele; potřeba v DiskMapě ošetřit nečernobílé polštářky
- Uložit PNG do vlastního kontejner formátu obsahujícího i doplňující informace
Výhody: Kontrola nad tvorbou polštářku; Můžu předpokládat, že všechny polštářky již jsou černobílé
Nevýhody: Pro tvorbu polštářků potřeba vytvořit speciální software; Polštářky si užitel nemůže jednoduše prohlédnout
- Uložit PNG do ZIPu s druhým souborem obsahující doplňující informace; Speciální přípona
Výhody: Zip kontejner je současným standardem pro vícesouborová řešení
Nevýhody: Nelze jednoduše vytvořit uživatelem; Potřeba kód pro načítání ZIP archivů v DiskMapě; Potřeba ošetřit uživatelem pozměněné ZIP archivy (tedy i ne černobílé obrázky)
- Jiný nápad?
Nejvíce jsem pro bod
B. Oproti současnému proprietárnímu formátu získám lepší kompresi a možnost jednoduchého náhledu na polštářek. Jiná přípona zase zachová možnost přiřadit k typu souboru otevření v DiskMapě a uživatelům naznačí specializovaný formát.