获取getPixels ByteArray中的主色或平均色

Mak*_*leh 0 flash actionscript actionscript-3

所以,我有这个代码:

import flash.display.BitmapData;
import flash.display.Bitmap;
import flash.geom.Rectangle;
import flash.utils.ByteArray;

var bmd:BitmapData = new BitmapData(10, 10, true);
var seed:int = int(Math.random() * int.MAX_VALUE);
bmd.noise(seed);

var bounds:Rectangle = new Rectangle(0, 0, bmd.width, bmd.height);
var pixels:ByteArray = bmd.getPixels(bounds);
Run Code Online (Sandbox Code Playgroud)

有没有办法在pixelsByteArray中有效且快速地获得主色和/或平均色.

noise用于此处的示例.我将在BitmapData上绘制其他内容.

我找到了一些从BitmapData中提取平均颜色味觉的方法,但这对我来说还不够,因为我想要从该图像的矩形平均值.

提前致谢!

Hud*_*son 5

平均颜色很容易,只要调整bitmapData通过draw()在一个1x1的位图荷兰国际集团它,闪光灯会在平均复制过程的颜色.

var m: Matrix = new Matrix();
m.scale( 1 / bmd.width, 1 / bmd.height);
var averageColorBmd:BitmapData = new BitmapData(1, 1);
averageColorBmd.draw(bmd, m);
var averageColor:uint = averageColorBmd.getPixel(0,0);
Run Code Online (Sandbox Code Playgroud)

这样的东西!