Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: Värin invertointi

peki [27.04.2004 21:38:52]

#

Putkasta on ollut puhetta väreistä jo useamman kerran.
Värien invertointiin on käytetty not operaattoria tai xor:attu pitkällä rivillä ykkösiä.
Tässä on nyt mielestäni kaikista yksinkertaisin keino invertoida:
Yksittäiset värikomponentit invertoidaan näin.
uusipuna = 255 - vanhapuna
uusiviher = 255 - vanhaviher
uusisini = 255 - vanhasini

Väri lasketaan näin:
R + 256 * G + 256 * 256 * B

(255 - R) + 256 * (255 - G) + 256 * 256 * (255 - B)
= (255 + 256 * 255 + 256 * 256 * 255) -
(R + 256 * G + 256 * 256 * B)
= &HFFFFFF - originaali väri

Joten yksinkertaisin tapa laskea invertoitu väri on tämä:(?)
invertti = &HFFFFFF - originaaliväri
Pitääkö tämä paikkansa, vai olenko väärässä?
Onko parempia tapoja?

setä [27.04.2004 21:55:43]

#

Eiköhän se noin ole. Jos haluaa invertoida kuvan negatiiviksi, täytyy käyttää rasterioperaatiota vbNotSrcCopy. Ilmeisesti tämä suorittaa juuri mainitsemasi operaation jokaiselle pikselille erikseen

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta