Impressum DatenschutzerklärungDiese Seite per HTTPS ansehen.

Farben in Bildern ausmustern oder ich sehe was was Du nicht siehst geschrieben am 25.04.2010

Manchmal benötigt man eine Funktion um bestimmt Farben aus einer Bitmap zu extrahieren. Dazu gibt es in Flash die threshold Funktion.

Die folgende Demo macht diesen Effekt sichtbar, wenn man mit der Maus über das Bild fährt:
und manchmal versteckt sich in einem Bild mehr als man sieht.

Das Script ist nicht weiter kompliziert, wenn man herausgefunden hat wie es funktioniert.

ActionScript2import flash.geom.Matrix; import flash.display.BitmapData; import flash.geom.*; var basis:MovieClip=this; var quellMC:MovieClip=this.quelle;//ein MovieClip mit dem Bild auf der Bühne //Quellbild in eine Bitmap kopieren var quellBitmap:BitmapData=new BitmapData(quellMC._width,quellMC._height,true, 0x00ff0000); quellBitmap.draw(quellMC,new Matrix(),null,BlendMode.NORMAL,null,false); //Temporärer Movieclip var zielMC:MovieClip=basis.createEmptyMovieClip('zielMC',basis.getNextHighestDepth()); zielMC._x=quellMC._width; quellMC.onEnterFrame=function(){ if(this.hitTest(this._xmouse,this._ymouse,true)){//Maus über Quellbild //Farbe unterm Mauszeiger holen var picfarbe=quellBitmap.getPixel(this._xmouse,this._ymouse); //eine neue Bitmap erzeugen var temp:BitmapData=new BitmapData(quellBitmap.width,quellBitmap.height,true, 0x00cccccc); //nur die selektierte Farbe hineinkopieren temp.threshold(quellBitmap, new Rectangle(0, 0, quellBitmap.width, quellBitmap.height) ,new Point(0, 0) ,"==" //Maskierungsmode ,picfarbe //zu maskierende Farbe ,0xff000000+picfarbe //Farbe im temp-Bitmap ,0x00ffffff ,false ); //alten Movieclip löschen removeMovieClip(zielMC); //neuen anlegen zielMC=basis.createEmptyMovieClip('zielMC',basis.getNextHighestDepth()); //verschieben zielMC._x=quellMC._width; //Bitmap anfügen zielMC.attachBitmap(temp,zielMC.getNextHighestDepth()); } }

Näheres zu threshold-Funktion findet man in der Hilfe von Flash und wird deshalb hier nicht weiter erläutert.

Tipp: das Quellbild sollte am besten ein png sein - da bei jpeg durch die Kompression zu viele Artefakte entstehen.



schreibe den ersten Kommentar:


Inhalt zur freien Verwendung gibs es beim Thema Downloads.
nach oben springen
mehr auf: Instagram, github, thingiverse