PDA

Просмотр полной версии : Площадь по пикселям


Nata123
07.06.2006, 14:12
скажите пожалуйста, есть ли такая функция, которая может вычислить количество точек одного цвета в мувике?

etc
07.06.2006, 14:29
Пробегайся по всей картинки, смотри цвет пикселя. Если совпадает с заданным, то плюсуй счётчик.

Reijii
07.06.2006, 14:29
я думаю что нужно воспользоватся встроенным классом BitMapData.
там есть такие вещи как getPixel(), getPixel32()

в help искать по пути:

ActionScript classes > BitmapData (flash.display.BitmapData) > getPixel32 (BitmapData.getPixel32 method)

Nata123
07.06.2006, 14:46
что-то не получается
я рисую мувик , в нём красный прямоугольник и синий прямоугольник
мувик называю obj
пишу код
trace( obj.getPixel32(0, 10) );
возвращается undefined

Nata123
07.06.2006, 14:51
как просмотреть цвет пикселя?

Reijii
07.06.2006, 14:53
как просмотреть цвет пикселя?
а посмотреть в 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

iNils
07.06.2006, 14:55
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);
}
}
Вот только если у тебя клип не полностью прямоугольный будет забавно :)

Nata123
07.06.2006, 14:59
Спасибо огромное!