查找满足条件的颜色并替换

import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.BitmapDataChannel;
import flash.geom.Point;
import flash.geom.Rectangle;

var bmd1: BitmapData = new BitmapData(200,
	200,
	true,
	0xFFCCCCCC);

var seed: int = int(Math.random() * int.MAX_VALUE);
var channels: uint = BitmapDataChannel.RED | BitmapDataChannel.BLUE;
bmd1.perlinNoise(100,
	80,
	12,
	seed, false,
	true,
	channels, false,
	null);

var bitmap1: Bitmap = new Bitmap(bmd1);
addChild(bitmap1);

var bmd2: BitmapData = new BitmapData(200,
	200,
	true,
	0xFFCCCCCC);
var pt: Point = new Point(0,
	0);
var rect: Rectangle = new Rectangle(0,
	0,
	200,
	200);
var threshold: uint = 0x00800000; //50%的红色通道值
var color: uint = 0x80FF0000; //替换后的颜色
var maskColor: uint = 0x00FF0000; //因为只查找红色通道,所以遮罩仅为纯红色通道
bmd2.threshold(bmd1,
	rect, pt, ">",
	threshold, color, maskColor, true);

var bitmap2: Bitmap = new Bitmap(bmd2);
bitmap2.x = bitmap1.x + bitmap1.width + 10;
addChild(bitmap2);

addEventListener(Event.ENTER_FRAME, EnterFrameHandler);

function EnterFrameHandler(e: Event): void {
	seed = int(Math.random() * int.MAX_VALUE);
	bmd1.perlinNoise(100,
		80,
		12,
		seed, false,
		true,
		channels, false,
		null);
	bitmap1.bitmapData = bmd1;
	bmd2.threshold(bmd1,
		rect, pt, ">",
		threshold, color, maskColor, true);
	bitmap2.bitmapData = bmd2;
}

  

原文地址:https://www.cnblogs.com/dt1991/p/9298977.html