Farben mischen bzw Mittelwert?

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

M0rgenstern

Betreff: Farben mischen bzw Mittelwert?

BeitragMo, Jun 14, 2010 21:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey Leute.

Ich hab mal ne Frage:
Wenn ich aus ner Pixmap mit ReadPixel die Farbe auslese und sie aufspalte in ARGB und das gleiche in nem anderen BIld mache und dann auf dem einen Bild z.B. an der Seite des Bildes diese beiden Farben gemischt anzeigen lassen will.
Wie mache ich das am besten?

Ich hab mir dafür folgendes zusammengebastelt:

BlitzMax: [AUSKLAPPEN]
	For Local x:Int = 0 Until mask.width
For Local y:Int = 0 Until mask.height

Local OldRGB:Int = ReadPixel(source, x, y)
Local OldA:Int = (oldrgb Shr 24)
Local OldR:Int = (OldRGB And $FF0000) / $10000
Local OldG:Int = (OldRGB And $FF00) / $100
Local OldB:Int = (OldRGB And $FF)


argb = ReadPixel(mask, x, y)
a = (argb Shr 24)
r = (argb And $FF0000) / $10000
g = (argb And $FF00) / $100
b = (argb And $FF)
If r < 0 Then r = 0
If g < 0 Then g = 0
If b < 0 Then b = 0

r = r / (x + 1)
g = g / (x + 1)
b = b / (x + 1)



r = (r + OldR) / 2
If r > 255 Then r = 255
g = (g + OldG) / 2
If g > 255 Then g = 255
b = (b + OldB) / 2
If b > 255 Then b = 255
a = OldA
If a > 225 Then a = 225


Local col:Int = (a Shl 24) | (r Shl 16) | (g Shl 8) | b


If x <= 15 Then
WritePixel(d, x, y, col)
Else
WritePixel(d, x, y, OldRGB)
EndIf
Next
Next


Aber das funktioniert nicht richtig.
Entweder es wird weiß oder ein Grauverlauf.

Ich möchte eifnach nur eienn weichen Verlauf zwischen den beiden Bildern. aber wenn das BIld dann grau wird geht das nicht wirklich^^

Könnt ihr mir vielleicht helfen?

Lg, m0rgenstern

D2006

Administrator

BeitragMo, Jun 14, 2010 23:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Benutze "&" statt "And". (Erklärung: In BB war "And" auch für das bitweise Und zuständig. In BMax hingegen ist es nur noch logisch, du benötigst aber das bitweise.)
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2

Moep

BeitragDi, Jun 15, 2010 6:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Außerdem würd ich die Pixmap.PixelPtr(x,y) benutzen, das ist erheblich schneller.
(bin mir jetzt beim Funktionsnamen nicht ganz sicher)


mfg
Hardstyle Schleichwerbung:
http://www.youtube.com/user/Hackepeter42

Achtung: Suchtgefahr!
moep123.ohost.de

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group