Răspunsul la întrebarea numărul 60783

Fundaluri, transparență, piei | paleta |

Toate Zrastvuyte. A apărut o problemă la eliminarea Roșie (precum și albastru și verde) din clBtnFace de culoare de sistem (ar trebui să XPishny stil de măsline). Am vrut să facă acest lucru:
GetRValue (clBtnFace);
Dar Delphi scrie o eroare care clBtnFace afara razei de acțiune, așa cum am înțeles din cauza clSystemColor constanta = $ FF000000 (explica: clBtnFace = TColor (clSystemColor sau COLOR_BTNFACE)). Apoi, el a încercat să facă acest lucru în mod direct, fără funcție GetRValue:
byte (clBtnFace);
Dar apoi Nasol, clSystemColor constantă este ignorată obține numai valoarea COLOR_BTNFACE (această constantă = 15). Înainte pentru a încerca o grămadă de alte moduri, același rezultat = 15, cu toate că în Photoshop, am aflat că clBtnFace de culoare roșie trebuie să fie egală cu 236.
Ajuta, vreau doar să fac o fereastră, a cărei fundal este imaginea semi-transparentă, adică. ca și în cazul în care poluprozr. (Circa 20%) Rec. suprapus peste clBtnFace - asa ca a fost totul cu un dram de stil, care este acum folosit (în cazul meu, de măsline) și frumos în armonie cu el, ea nu a fost alocată. Pentru acest articol am folosi Anton Grigoriev - „Fereastra cu diferite grade de transparență“ și aici în timpul dorabatyvaniya, suprapunând filtru de algoritm (există unele nuanțe neinregistrate), am fost confruntat cu problema de mai sus. Ceea ce am să ajung: eu pot cu înțelepciune? dacă știți căile de amestecare, fig. și culoare, este mai ușor - este, de asemenea, pozhalusta prompt.

Urmați orice răspunsurile la această întrebare prin RSS

Un nou mod este mai lent, deoarece nu este proiectat pentru a converti imaginea în sine, scopul său - Suprapunerile de imagini translucide pe orice context fără conversie prealabilă. Dacă-l utilizați în acest fel, va fi mai rapid.

Doar din curiozitate, măsurat timpul de execuție, cele două metode de schimbare de transparență (vechi ta, eu și noul restaurat, cu AlphaBlend). următoarele rezultate:
Timpul de procesare a imaginii o ieșire:
nou = 7.4454
vechi = 6.9780

Timpul de procesare a luat o sută de imagini:
nou = 824.7263 (medie 8.2472)
vechi = 675.4805 (medie 6.7548)

Conchide curs pentru cazul meu - nu este mortală, dar dacă aveți nevoie pentru a lucra cu un număr mare de imagini CMV, cu atât mai profitabile vechiul modul desigur.