Просмотр полной версии : Площадь по пикселям
скажите пожалуйста, есть ли такая функция, которая может вычислить количество точек одного цвета в мувике?
Пробегайся по всей картинки, смотри цвет пикселя. Если совпадает с заданным, то плюсуй счётчик.
я думаю что нужно воспользоватся встроенным классом BitMapData.
там есть такие вещи как getPixel(), getPixel32()
в help искать по пути:
ActionScript classes > BitmapData (flash.display.BitmapData) > getPixel32 (BitmapData.getPixel32 method)
что-то не получается
я рисую мувик , в нём красный прямоугольник и синий прямоугольник
мувик называю obj
пишу код
trace( obj.getPixel32(0, 10) );
возвращается undefined
как просмотреть цвет пикселя?
как просмотреть цвет пикселя?
а посмотреть в help ? ;)
вот выдержка
import flash.display.BitmapData;
var myBitmapData:BitmapData = new BitmapData(100, 80, true, 0xFFAACCEE);
var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth());
mc.attachBitmap(myBitmapData, this.getNextHighestDepth());
var alpha:String = (myBitmapData.getPixel32(0, 0) >> 24 & 0xFF).toString(16);
trace(">> alpha: " + alpha); // ff
var red:String = (myBitmapData.getPixel32(0, 0) >> 16 & 0xFF).toString(16);
trace(">> red: " + red); // aa
var green:String = (myBitmapData.getPixel32(0, 0) >> 8 & 0xFF).toString(16);
trace(">> green: " + green); // cc
var blue:String = (myBitmapData.getPixel32(0, 0) & 0xFF).toString(16);
trace(">> blue: " + blue); // ee
trace("0x" + alpha + red + green + blue); // 0xffaaccee
mc это имя клипа
import flash.display.BitmapData;
bd = new BitmapData (mc._width, mc._height, false);
bd.draw (mc);
for (var i = 0; i < mc._width; i++) {
for (var j = 0; j < mc._height; j++) {
var clr = bd.getPixel (i, j);
trace (clr);
}
}
Вот только если у тебя клип не полностью прямоугольный будет забавно :)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.