PDA

Просмотр полной версии : Удаление фона картинки


oCa
20.07.2008, 14:00
Доброго времени суток!
Вопрос следующий:
загружается картинка (jpg), скажем с однотонным белым фоном. Можно ли (и тогда как) отобразить её без этого фона? Само собой программно. Словом сделать , скажем, белый цвет прозрачным что ли или не отображать его вовсе. Предполагаю помогут в этом фильтры. Не откажусь от примера.

flash33
20.07.2008, 14:21
Вам поможет не фильтр, а метод класса BitmapData.threshold()
var bmpData = new BitmapData(width, height, true, 0);
bmpData.draw(mc);//mc - клип с изображением
var bmp = addChild(new Bitmap(bmpData));
bmpData.threshold(bmpData, new Rectangle(0, 0, width, height), new Point(0, 0), ">=", 0xFFFAFAFA, 0, 0xFFFFFFFF, false);//отсекаем цвет выше 0xFFFAFAFA
пример для as3, но threshold работает и для as2

Alex_beginner
20.07.2008, 18:45
Есть еще кое, называется transparent. Это transparent указывается при создании битмапдаты. Если оно true, то transparent работает, если false, то соотвественно, нет.

oCa
20.07.2008, 22:54
По-всякому перепробовал приведённый код - никак не выходит. Может я что-то не так делаю? Может есть рабочий исходник? Желательно для AS2

iNils
20.07.2008, 23:19
Конечyо не выходит, это же AS3

oCa
20.07.2008, 23:26
Да, для третьего работает. Просто в примере прозвучало про AS2, вот и понадеялся, что можно как-то вырулить для второго...
А есть ли решение для AS2?

iNils
20.07.2008, 23:34
Конечно
var bmp = new BitmapData (width, height, true, 0);
bmp.draw (mc);
//mc - клип с изображением
bmp.threshold (bmp, new Rectangle (0, 0, width, height), new Point (0, 0), ">=", 0xFFFAFAFA, 0, 0xFFFFFFFF, false);
//отсекаем цвет выше 0xFFFAFAFA
this.attachBitmap (bmp, this.getNextHighestDepth ());

oCa
21.07.2008, 07:04
Огромное спасибо!!! Всё работает!