QT tip #1 - Průhlednost obrázků
July 9, 2007 on 3:59 pm | In Programing, Poznámečky |Začíná můj osobní nepravidelný mini seriál, kde si hodlám zapisovat poznámky o specifických činnostech v QT frameworku. Ano vím - všechno se lze dočíst v dobře a přehledně napsaném manuálu, ale kdo to má v něm pořád hledat?
Výchozí podmínky - mám obrázek (načtený v QImage objektu) a potřebuji, aby byl průhledný pro nějakou akci - typicky pro vykreslení (co jiného by jste taky s obrázkem chtěli dělat, že?). Hned na první pohled mě při hledání jak na to zaujala metoda QImage::setAlphaChannel ( const QImage & alphaChannel ), jenže ta požaduje alphaChannel jako parametr, takže co s tím?
Jistě budeme si ho muset vytvořit, otázkou zůstává jak. Po relativně krátkém patrání a testovaní se mi oplatil tento postup:
QImage obrazek("./cesta/image.png");
QImage pruhlednost(obrazek.width(), obrazek.height(), QImage::Format_Indexed8);
pruhlednost.fill(70);
obrazek.setAlphaChannel(pruhlednost);
Kde parametr pro QImage::fill() nabývá hodnot od 0 do 255, kde 0 znamená plnou průhlednost (obrázek není vidět) a 255 znamá žádnou průhlednost (obrázek je “plný”). Ještě dodám, že “pruhlednost” a “obrazek” musí mít stejnou velikost (kód nahoře bude fungovat správně), jinak QT zahlásí runtime chybu (zprávu do konzole) a neaplikuje požadovaný alfa kanál. Ale aspoň nespadne…
1 Comment »
RSS feed for comments on this post. TrackBack URI
Leave a comment
Powered by WordPress with Pool theme design by Borja Fernandez.
Entries and comments feeds.
Valid XHTML and CSS. ^Top^
tak to je fajn
Comment by JR — 2007-07-09 #