8.18.比较两幅位图
8.18.1. 问题
我需要比较两个位图图像,并显示他们之间的差别。
8.18.2. 解决办法
从两个图像读取位图数据,并使用compare 方法比较两个图像。把两个图像的差别设置为第3 个图像的源。
8.18.3. 讨论
BitmapData 类的compare 方法返回一个BitmapData 对象,包括两个列出的图像中所有不能匹配的像素。如果两个BitmapData 对象有相同的尺寸(宽和高),这个方法返回一个新的BitmapData 对象,包括两个源对象中不同的每一个像素:如果两个像素相同,不同的像素值是0x00000000。如果两个像素有不同的RGB 值(忽略alpha 值)不同的像素值是0xFFRRGGBB,这里的RR/GG/BB 是红色,绿色,蓝色通道之间的个体的差别值。在这种情况下, alpha 通道的差异被忽略。如果只是alpha 通道的值有差别,像素的值是0xZZFFFFFF,这里ZZ 是alpha 值得差别值。
我需要比较两个位图图像,并显示他们之间的差别。
8.18.2. 解决办法
从两个图像读取位图数据,并使用compare 方法比较两个图像。把两个图像的差别设置为第3 个图像的源。
8.18.3. 讨论
BitmapData 类的compare 方法返回一个BitmapData 对象,包括两个列出的图像中所有不能匹配的像素。如果两个BitmapData 对象有相同的尺寸(宽和高),这个方法返回一个新的BitmapData 对象,包括两个源对象中不同的每一个像素:如果两个像素相同,不同的像素值是0x00000000。如果两个像素有不同的RGB 值(忽略alpha 值)不同的像素值是0xFFRRGGBB,这里的RR/GG/BB 是红色,绿色,蓝色通道之间的个体的差别值。在这种情况下, alpha 通道的差异被忽略。如果只是alpha 通道的值有差别,像素的值是0xZZFFFFFF,这里ZZ 是alpha 值得差别值。
+展开
-XML
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" width="400"
height="800">
<mx:Script>
<![CDATA[
import mx.core.BitmapAsset;
private function compare():void {
var bmpd1:BitmapData = new BitmapData(img1.width,img1.height);
var bmpd2:BitmapData = new BitmapData(img2.width,img2.height);
bmpd1.draw(img1)
bmpd2.draw(img2);
var diff:BitmapData = bmpd2.compare(bmpd1) as BitmapData;
var bitmapAsset:BitmapAsset = new BitmapAsset(diff);
img3.source = bitmapAsset;
}
]]>
</mx:Script>
<mx:Image id="img1" source="../assets/mao.jpg" height="200"
width="200"/>
<mx:Image id="img2" source="../assets/bigshakey.png"
height="200" width="200"/>
<mx:Button click="compare()" label="compare"/>
<mx:Image id="img3"/>
</mx:VBox>
height="800">
<mx:Script>
<![CDATA[
import mx.core.BitmapAsset;
private function compare():void {
var bmpd1:BitmapData = new BitmapData(img1.width,img1.height);
var bmpd2:BitmapData = new BitmapData(img2.width,img2.height);
bmpd1.draw(img1)
bmpd2.draw(img2);
var diff:BitmapData = bmpd2.compare(bmpd1) as BitmapData;
var bitmapAsset:BitmapAsset = new BitmapAsset(diff);
img3.source = bitmapAsset;
}
]]>
</mx:Script>
<mx:Image id="img1" source="../assets/mao.jpg" height="200"
width="200"/>
<mx:Image id="img2" source="../assets/bigshakey.png"
height="200" width="200"/>
<mx:Button click="compare()" label="compare"/>
<mx:Image id="img3"/>
</mx:VBox>
加支付宝好友偷能量挖...