PDA

Просмотр полной версии : Сглаживание в BitmapData или Bitmap


dipter
15.03.2006, 19:18
Можно ли как-нибудь рисовать в BitmapData векторные рисунки, но чтобы они не сглаживались (т.е. рисую белый круг на черном фоне и в итоге в BitmapData должно быть только 2 цвета белый и черный). Пробовал менять stage.quality на low (тогда все работает как нужно), но это не подходит т.к. изменения качества сильно заметно на глаз.

BlooDHounD
15.03.2006, 20:20
ну а если изменить качество, на плохое, а потом вернуть на хорошие?

dipter
15.03.2006, 20:29
Переход с одного качества на другое заметен, а мне необходимо это делать не один раз (будет заметно мелькание high -> low).

silin
15.03.2006, 20:51
иначе, похоже никак: в вitmapData попадает текущее состояние (интересно, что незавимо от того есть объект на сцене или нет)
var s:Sprite=new Sprite();
s.graphics.beginFill(0xFFFFFF);
s.graphics.drawCircle(2,2,2);
var bl:BitmapData=new BitmapData(4,4,false,0);
var bh:BitmapData=new BitmapData(4,4,false,0);
stage.quality="low";
bl.draw(s,new Matrix());
////////////////////////
stage.quality="best";
bh.draw(s,new Matrix());
for(var i:int=bl.width;i--;)for(var j:int=bl.width;j--;) {
trace("___________")
trace("low: "+bl.getPixel(i,j));
trace("best: "+bh.getPixel(i,j));
}
//////////////////////////
var bml:Bitmap=new Bitmap(bl);
var bmh:Bitmap=new Bitmap(bh);
bmh.x=10;
addChild(bml);
addChild(bmh);
зы:имхо мелькания не должно быть, хотя надо пробовать..

dipter
15.03.2006, 21:32
Ладно я попробую только, еще не понятно какова будет нагрузка если менять качество довольно часто (например если нужно прорисовать до 3000 объектов). Но все равно спасибо....