Überprüfung der Farbe eines Pixels

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Paranoide

Betreff: Überprüfung der Farbe eines Pixels

BeitragFr, Okt 21, 2005 18:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallihallo!
Wie kann ich die Farbe eines Pixels überprüfen lassen, um sie beispielsweise mit einem anderem Pixel vergleichen zu können?

MfG

Michel

MBC

BeitragFr, Okt 21, 2005 18:18
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]

GetColor
ReadPixel
ReadPixelFast


von langsam nach schnell Wink
Computer sind auch nur Menschen! Wink
 

Paranoide

BeitragFr, Okt 21, 2005 19:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn ich jetzt also guggn will, ob die Farbe weiß ist, muss ich dann

BlitzBasic: [AUSKLAPPEN]
If ColorBlue() = 255 And ColorGreen() = 255 And ColorRed() = 255 Then
FarbeWeiss = 1
EndIf


eingeben oder geht das noch anders/schneller?

MfG

Michel

MBC

BeitragFr, Okt 21, 2005 19:23
Antworten mit Zitat
Benutzer-Profile anzeigen
jo, stimmt schonma (natürlich nur, wenn du vorher getcolor ausführst^^)
du musst aber beachten, dass getcolor die aktuelle zeichenfarbe ändert, also, wenn du irgendwo color 255,0,0 schreibst und liest dann einen pixel mit getcolor der zB 255,255,255 hat, ist die zeichenfarbe dann auch 255,255,255.

schneller geht das, indem du readpixelfast benutzt und dann anschließend aus dem gelesenen farbcode (hexadezimal) die jeweiligen farbanteile rausrechnest... die formeln dazu stehn inner onlinehilfe bei readpixel(fast)
wenn du die fastvariante benutzt, musst du allerdings vorher Lockbuffer() und später wieder UnlockBuffer() ausführen, was acuh einige Zeit in Anspruch nimmt, so dass sich das "fast" erst bei mehreren Berechnungen... öhhm... rechnet Laughing
Computer sind auch nur Menschen! Wink
 

Florian

BeitragFr, Okt 21, 2005 19:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]


LOCKBUFFER FRONTBUFFER()

rgb=READPIXELFAST(x,y)
r=(rgb AND $FF0000)/$10000
g=(rgb AND $FF00)/$100
b=rgb AND $FF

UNLOCKBUFFER FRONTBUFFER()

If r=255 and g=255 and b=255 then
end if

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group