![]() |
|
||||||||||
|
|||||
|
Привет всем!
Подскажите, пожалуйста, как обрезать картинку по маске. Не только чтоб была видна просто зона где была наложена маска, но и края обрезались скажем, картинка шириной в 600пкс, маска - 200. и обрезать по маске так чтоб картинка стала тоже 200. Может как-то отслеживать цвета? Прозрачную область обрезать? Подкиньте идею ![]()
__________________
http://zenpro.blogspot.com/ |
|
|||||
|
Регистрация: Apr 2010
Сообщений: 7
|
a.setMask(b),
где a - клип, который надо увидеть, b - маска, через которую ты его увидишь. попробуй, может тебе и отслеживать ничего не понадобится :о) |
|
|||||
|
ну это понятно, понимаете, я потом делаю ресайз этого клипа, и маркеры увеличения и уменьшения становятся по ширине исходной картинки, а мне надо чтоб уже было приближенно к маскируемой части(видимой). получается что есть 100х100 видимая область и маркеры от нее на 300 пикселов дальше из-за того что картинка не обрезалась
![]()
__________________
http://zenpro.blogspot.com/ |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
В BitmapData#copyPixels(), есть опциональные параметры:
Копируйте кусок исходного изображение по прямоугольной области маски в обрезанное изображение, и в опциональных параметрах указывайте битмапдату своей маски в качестве alphaBitmap.
Также copyChannel() можно альфа-канал скопировать. Последний раз редактировалось udaaff; 22.04.2010 в 19:14. |
|
|||||
|
не совсем понятно как это применить..
__________________
http://zenpro.blogspot.com/ |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
import flash.display.BitmapData; import flash.geom.* // На сцене лежат два мувика mask и image. mask._visible = false; image._visible = false; var imageBitmap:BitmapData = new BitmapData(image._width, image._height, true, 0x00000000) imageBitmap.draw(image); var maskBitmap:BitmapData = new BitmapData(mask._width, mask._height, true, 0x00000000); maskBitmap.draw(mask); var maskedBitmap:BitmapData = new BitmapData(mask._width, mask._height, true, 0x00000000); maskedBitmap.copyPixels(imageBitmap, new Rectangle(mask._x, mask._y, mask._width, mask._height), new Point(0, 0), maskBitmap, new Point(0, 0)); // Выводим результат var result:MovieClip = createEmptyMovieClip("result", 0); result.attachBitmap(maskedBitmap, 0); |
|
|||||
|
Такой вариант работает, спасибо, но у меня там постоянно меняются координаты а из-за этого несоответствие получается.
как скопировать альфаканал? можно ли имея прозрачное изображение с зеленым кругом посредине, скопировать именно область где зеленый круг, обрезая прозрачные края?
__________________
http://zenpro.blogspot.com/ |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Цитата:
Цитата:
|
|
|||||
|
А можно как-то узнать где на изображении появляется цвет.
Ну например, фон весь белый и узнать на координату точки где начинается другой цвет?
__________________
http://zenpro.blogspot.com/ |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
getColorBoundsRect() — область цвета
|
![]() |
![]() |
Часовой пояс GMT +4, время: 16:14. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|