Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Värien yhdistäminen (VB6)

JoreSoft [03.11.2008 16:52:02]

#

Olisi tuossa grafiikka-ohjelmassa tämmöinen ongelma.

Käytän bittikartta tulostukseen 8-kynäistä plotteria, tulee keltaisen ja punaisen päällekkäin tulostamisesta tietysti oranssia.

Ongelma on esikatselussa, jossa toi tulostaminen ohjataan bitmap-kontrolliin.
pitäisi siis laskea allaolevan värin ja tulostusvärin yhdistäminen.

olen joskus nähnyt tuon RGB-ohjelmakoodin, mutta en löytänyt millään hakusanalla enää..

=)

petrinm [03.11.2008 17:29:40]

#

Yksinkertaisesti laske RGB arvojen keskarvo! Eli yksittäin jokaiselle komponentille.

ESIM!: Jos on luokka RGB, joka voidaan alustaa tyyliin RGB(r, g, b) ja sen eri komponentien väriarvoja voidaan käsitellä tyyliin väriobjekti.r, niin (sekavaa)

Red = RGB(255, 0, 0)
Yellow = RGB(255, 255, 0)

Orange = RGB((Red.r + Yellow.r)/2, (Red.g + Yellow.g)/2, (Red.b + Yellow.b)/2) ' 255, 128, 0

JoreSoft [03.11.2008 18:11:57]

#

En tarkoittanut tuota, vaan värien miksaamista.

Sub Lue 'Osa isommasta koodista....
    For II = Li.s.X + O.X To Li.E.X + O.X
        C = GetPixel(PL.P1.HDC, II, Li.s.Y)
        If C <> vbWhite Then
              C = Miksaa(C, Plot.PenColor(UseColor.Pen(I)))
        Else
              C = Plot.PenColor(UseColor.Pen(I))
        End If
        SetPixel PL.P1.HDC, II, Li.s.Y, C
    Next II
End Sub

Function Miksaa(C1 As Long, C2 As Long) As Long
Dim CC1 As t_RGB, CC2 As t_RGB
    CC1 = ChangeRGBValues(C1)
    CC2 = ChangeRGBValues(C2)
    Miksaa = RGB((CC1.R + CC2.R) / 2, (CC1.G + CC2.G) / 2, (CC1.B + CC2.B) / 2)
End Function

Tarkoititko tuollaista koodia??

Grez [04.11.2008 09:50:41]

#

Itse asiassa tuntuu omituiselta, että väri "peittää" muita värejä vain 50% mutta valkoista 100%.

Normaalistihan jos piirtää punaista mustetta ja keltaista, niin siitä tulee punaista, ehkä ihan aavistuksen verran kellertävämpää. (ja keltaisesta ja magentasta tulee punaista)

JoreSoft [06.11.2008 11:58:20]

#

Grez kirjoitti:

Itse asiassa tuntuu omituiselta, että väri "peittää" muita värejä vain 50% mutta valkoista 100%.

Johtuu siitä, että tulostimessa on valkoista paperia.
Nopeudenkin kannalta on järkevämpää jättää laskenta valkoisen kanssa pois.

Vastaus

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

Tietoa sivustosta