我有兩個類似的BitmapData,我想比較它們並獲得它們相似的百分比。 (我想我應該使用BitmapData的compare()和threshold()方法,但不知道如何)(或者簡單地使用getPixel並比較每個像素的像素,但我不知道它是否對性能有好處)在ActionScript 3中比較兩個位圖
3
A
回答
5
下面是一個使用比較和getVector,假設兩個位圖數據對象是相同的寬度和高度,一個簡單的辦法:
var percentDifference:Number = getBitmapDifference(bitmapData1, bitmapData2);
private function getBitmapDifference(bitmapData1:BitmapData, bitmapData2:BitmapData):Number
{
var bmpDataDif:BitmapData = bitmapData1.compare(bitmapData2) as BitmapData;
if(!bmpDataDif)
return 0;
var differentPixelCount:int = 0;
var pixelVector:Vector.<uint> = bmpDataDif.getVector(bmpDataDif.rect);
var pixelCount:int = pixelVector.length;
for (var i:int = 0; i < pixelCount; i++)
{
if (pixelVector[i] != 0)
differentPixelCount ++;
}
return (differentPixelCount/pixelCount)*100;
}
+1
不錯的例子+1。我有一個小改進建議:可以使用[getVector()](http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/BitmapData.html# getVector())方法。單個循環應該更快。 –
+0
謝謝,改變它使用矢量。 –
相關問題
- 1. 在ActionScript 3中比較兩個BitmapData
- 2. Actionscript 3比較兩個影片剪輯
- 3. 比較兩個數組的ActionScript 3
- 4. Actionscript 3中的動態比較
- 5. 如何按字母順序比較ActionScript 3中的兩個字符串3
- 6. 單位比較兩個ILists
- 7. 比較鑿子3中的兩個位類型值
- 8. 使用此來比較對象(Actionscript 3)
- 9. DropShadowFilter在ActionScript 3中裁剪位圖
- 10. 在JavaScript中比較兩個圖像
- 11. 在salesforce中比較兩個視圖
- 12. c#中比較位圖(簽名)比較#
- 13. 比較兩個視圖
- 14. 比較兩個圖片
- 15. Flash ActionScript 3.0對象位置比較
- 16. OSX:比較兩個圖像
- 17. 比較兩個圖像android
- 18. 使用python比較兩個文件3
- 19. SQL-Oracle-跨兩個表比較3列
- 20. 比較ActionScript中的實數
- 21. 在actionscript 3中創建枚舉並比較
- 22. 創建線圖比較兩個組的前後中位數值
- 23. 比較android中兩個視圖的id?
- 24. 比較Neo4j中的兩個圖
- 25. 比較IOS中的兩個圖像8
- 26. 比較Android中的兩個圖像
- 27. 比較兩個羅盤方位
- 28. 創建位圖來比較兩個圖像像素
- 29. 使用BioAPI轉換和比較兩個指紋位圖圖像
- 30. 比較位圖 - 比較法不工作
當我說:「類似的」我的意思是,他們在幾個像素不同,但它不」這很重要,他們是不同的,我想他們的差異的百分比(他們是相同的寬度和高度) – dede
@dede嘗試看看這個答案:http://stackoverflow.com/questions/2544330/comparing-bitmap -data-in-as3-pixel-for-pixel – francis
謝謝,但我不能得到太多的幫助:( – dede