Neben den doppelten Antworten,
Ich glaube, Sie auch BitmapData.compare()
Ein Beispiel aus der Verbindung, die folgenden zwei Bitmapdata-Objekte verwenden können:
var bmd1:BitmapData = new BitmapData(50, 50, true, 0xFFFF8800);
var bmd2:BitmapData = new BitmapData(50, 50, true, 0xCCCC6600);
var diffBmpData:BitmapData = bmd1.compare(bmd2) as BitmapData;
trace ("0x" + diffBmpData.getPixel(0,0).toString(16); // 0x332200
Codebeispiel (für prozentualen Unterschied):
nicht, wie korrekt die Ergebnisse sind, ist das, was ich für einen Prozentsatz gebraut:
var bmd1:BitmapData = new BitmapData(225, 225);
bmd1.draw(mc1);
var bmd2:BitmapData = new BitmapData(225, 225);
bmd2.draw(mc2);
var diffBmpData:BitmapData = bmd1.compare(bmd2) as BitmapData;
var diff:int = 0;
var total:int = 225 * 225;
for(var i=0; i<225; i++)
for(var j=0; j<225; j++)
diff += (diffBmpData.getPixel(i,j) != 0)? 1 : 0;
info.text = Math.round((diff/total * 100)).toString();
Wo: info ein TextBox ist, mc1 & mc2 sind zwei Videoclips auf der Bühne .
Ich denke, Sie können es besser machen, indem Sie einzelne Werte vergleichen (d. H. Wie unterschiedlich ein Pixel ist) und nicht eine boolesche is-Pixel-ähnliche Übereinstimmung.
Ergebnis:
möglich Duplikat: http: // stackoverflow.com/questions/5427691/comparing-two-bitmaps-against-each-other-for-match-as3 – loxxy