ded*_*ede 3 flash actionscript-3
我有两个相似的BitmapData,我想比较它们,并得到它们相似的百分比.(我想我应该使用BitmapData的compare()和threshold()方法,但不知道如何)(或者只是使用getPixel并比较每像素的像素,但我不知道它是否对性能有益)
这是一个使用compare和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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1165 次 |
| 最近记录: |