Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 比较两个图像并检查是否相等_Actionscript 3_Flash_Image Processing - Fatal编程技术网

Actionscript 3 比较两个图像并检查是否相等

Actionscript 3 比较两个图像并检查是否相等,actionscript-3,flash,image-processing,Actionscript 3,Flash,Image Processing,您知道as3/flash中比较图像的任何来源或信息吗 我想比较两个图像,检查图像是否相同 检查此示例: 有什么线索吗?提前谢谢你 除了重复的答案 我相信你也可以用 从链接中获取的一个例子,考虑下面两个BITMADATA对象: var bmd1:BitmapData = new BitmapData(50, 50, true, 0xFFFF8800); var bmd2:BitmapData = new BitmapData(50, 50, true, 0xCCCC6600); var d

您知道as3/flash中比较图像的任何来源或信息吗

我想比较两个图像,检查图像是否相同

检查此示例:


有什么线索吗?提前谢谢你

除了重复的答案

我相信你也可以用

从链接中获取的一个例子,考虑下面两个BITMADATA对象:

 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

代码示例(用于百分比差异):

不知道结果有多正确,这是我为百分比所酝酿的:

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();
var bmd1:BitmapData=新的BitmapData(225225);
bmd1.draw(mc1);
变量bmd2:BitmapData=新的BitmapData(225225);
bmd2.draw(mc2);
var diffBmpData:BitmapData=bmd1。将(bmd2)作为BitmapData进行比较;
var-diff:int=0;
var总计:int=225*225;
如果像素值相同,则for(var i=0;iUsing将返回
0

trace(bmd1.compare(bmd2)); // 0

除了LOXY&xLite的答案外,如果您需要了解如何从图像文件获取位图数据:

var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaded);

loader.load( new URLRequest ( "http://www.fake.url.path/image.jpg" ) );

function onLoaded(e:Event):void {
    var bmp:Bitmap = loader.content as Bitmap;
    var bitmapData:BitmapData = bmp.data; 
    //bitmapData.Compare(...)
}

另请参见

可能的重复:谢谢你,Loxy,你有什么想法,它如何产生差异百分比?使用getPixel32(i,j)迭代diffBmpData的每个像素…计算差异为0的像素并将其用作百分比。对于大型图像,这应该会给出一个公平的百分比。。。