PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : BitmapData - Farbe filtern?


pate33
05.10.2006, 10:19
Hi,

folgendes Problem: ;)

Habe ein schickes kleines BitmapData-Objekt und moechte davon nun z.B. Blau oder Rot heraus filtern. Hab schon den ColorMatrixFilter und copyChannel ausprobiert, allerdings sieht das Bild danach nur aus, als wuerde jemand leicht blaue/rote Folie darueber legen, also nicht wirklich ein Farbfilter. :(

Hab auch schon mein Glueck mit tresholds probiert, allerdings funktioniert das auch nicht, wie ich es moechte.

Mein Ziel ist wie gesagt alle Blauen/Gruenen oder Roten Objekte herauszuheben und den Rest moeglichst Schwarz oder Weiss zu bekommen.

Vielen Dank


gencha
05.10.2006, 14:11
Definier mal genauer was du mit rot meinst.

RGB(255,0,0)
RGB(0...255,0,0)
RGB(255,0...255,0...255)
...

pate33
05.10.2006, 16:03
ich denke 0-255,0,0 trifft es am ehesten. Habe mit nem treshold nun wie folgt gefiltert:

bitmap.threshold(bitmap,r,p,"<",0x00660000,0x00000000,0x00FF0000,true);
bitmap.threshold(bitmap,r,p,">",0x00004444,0x00000000,0x0000FFFF,true);

das hat ne recht gute trefferquote, auch wenn noch zu viele brauntoene mit drin sind. :(

gencha
05.10.2006, 16:17
Wie wäre denn:
bitmap.threshold(bitmap,r,p,">",0x00FF0000,0x00000000,0x00FFFFFF,true);
bitmap.threshold(bitmap,r,p,"<",0x0000FFFF,0x00000000,0x00FFFFFF,true);
Das wäre mein erster Gedanke gewesen. Hab mit Bitmaps aber auch noch nich wirklich viel gemacht.
Aber von der Logik her müssten alle Pixel deren Rot-Komponente 0 ist, nach den beiden Durchgängen schwarz sein.

pate33
05.10.2006, 16:44
der Bereich ist leider zu gross. Da ja fast alles eine Rot-Komponente hat wird so gut wie nichts gefiltert.

gencha
05.10.2006, 16:54
Dann vielleicht:

bitmap.threshold(bitmap,r,p,">",0x00FF0000,0x00000000,0x00FFFFFF,true);
bitmap.threshold(bitmap,r,p,"<",0x0080FFFF,0x00000000,0x00FFFFFF,true);

pate33
05.10.2006, 17:37
ne, mit dem treshold von mir geht's noch am besten. Das ist zwar wirklich ein extrem harter Filter, aber richtiges Rot kommt durch, alles andere nicht. ;)

gencha
05.10.2006, 17:55
Dann mach doch was du willst :D ;)