![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Привет! Снова вопрос по фильтрам. В библиотеке - png картинка. На ней изображен, скажем, круг. Аттачу ее и перекрашиваю:
public static var redTransform:ColorTransform = new ColorTransform(0, 0, 0, 0, 255, 0, 0, 255);
public static var matr:Matrix = new Matrix ();
mc.attachMovie ("lib.round.PNG", "mc1", mc.getNextHighestDepth ());
mc.mc1._visible = false;
myBmp = new BitmapData(mc.mc1._width, mc.mc1._height, false, 0x00000000);
myBmp.draw (mc.mc1, matr, redTransform)
mc_1 = mov.createEmptyMovieClip("mc_1", 2);
mc_1.attachBitmap(myBmp, mov.getNextHighestDepth ());
|
|
|||||
public static var redTransform:ColorTransform = new ColorTransform(0, 0, 0, 0, 255, 0, 0, 255);
public static var matr:Matrix = new Matrix ();
mc.attachMovie ("lib.round.PNG", "mc1", mc.getNextHighestDepth ());
mc.mc1._visible = false;
myBmp = new BitmapData(mc.mc1._width, mc.mc1._height, true, 0);
myBmp.draw (mc.mc1, matr, redTransform)
mc_1 = mov.createEmptyMovieClip("mc_1", 2);
mc_1.attachBitmap(myBmp, mov.getNextHighestDepth ());
Последний раз редактировалось MrPoma; 24.06.2008 в 18:39. |
|
|||||
import flash.display.BitmapData;
import flash.geom.ColorTransform;
var red:ColorTransform = new ColorTransform(0, 0, 0, 0, 255, 0, 0, 255);
var bmp:BitmapData = BitmapData.loadBitmap('img');
var mc:MovieClip = this.attachMovie ('img', 'mc', this.getNextHighestDepth());
mc.attachBitmap(bmp, 0);
mc.transform.colorTransform = red;
|
|
|||||
|
Регистрация: May 2008
Сообщений: 476
|
Привет Волгоградец!
Если я правильно понял, что требуется сделать, то у меня на твой вопрос несколько идей возникло: 1. Попробуй использовать colorMatrixFilter. У него несколько расширена функциональность. 2. Создать маску, используя исходное изображение и метод класса BitmapData -threshold. Метод threshold должен будет вырезать из исходного изображения пиксели со значением цвета отличным от 0xFFFFFF (или другой) и заменить его на 0x000000. Таким образом получиться черно-белая маска, которую методом draw c blendMode наложить на исходное изображение после трансформа цвета. Если, я что то непонял - пожалуйста поясни.
__________________
Случайность, господа, это знаете ли непознанная необходимость. |
|
|||||
|
Привет, Alex_beginner.
Все гораздо проще оказалось. Во всем виноват Paint. Он сохраняет PNG без альфа канала и поэтому фон, на котором ничего не изображено становится белым. А трансформация цвета применяется ко всему изображению. Но если сохранить PNG в 32 битах, то фон, на котором ничего не изображено как бы не существует, т.е. он прозрачный и соответственно к нему траесформация чвета не применяется. MrPoma, спасибо. |
![]() |
![]() |
Часовой пояс GMT +4, время: 14:21. |
|
|
« Предыдущая тема | Следующая тема » |
|
|