Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Фигурная обрезка битмапом по маске (http://www.flasher.ru/forum/showthread.php?t=127130)

zaidite 06.07.2009 14:12

Фигурная обрезка битмапом по маске
 
1. Картинку которую нужно фигурно обрезать делаю битмапом.
2. Фигуру маски по которой нужного обрезать картинку делаю битмапом.
3. Создаю пустые клипы-контейнеры для этих битмапов. Для каждого свой.
4. В эти клипы помещаю по битмапу. В один клип картинку. Во второй маску.
5. Клип с маской располагаем над клипом с картинкой и задаём маской.
6. Но обрезка происходит не по фигуре маски, а по прямоугольнику битмапа который сделали из клипа с маской.
Подскажите, как сделать фигурную обрезку изображения посредством битмапа, так, что-бы в результате осталась видимая обасть заданая маской. И что-бы в результате эта получившаяся фигурная видимая область была отдельным клипом, который бы не содержал прозрачной прямоугольной области. Т.е. если к этому клипу применить startDrag, то взять его можно было только за видимую фигурную область, оставшуюся после обрезки по маске. А не за прямоугольник с прозрачностью в котором находится оставшаяся фигурная область после задания маски.

alekslitvinenk 06.07.2009 14:28

Цитата:

2. Фигуру маски по которой нужного обрезать картинку делаю битмапом.
битмап всегда имеет прямоугольную форму, используйте шейпы

zaidite 06.07.2009 14:42

Т.е. Сделать всё тоже самое, только не через битмап, а через шейп?

alekslitvinenk 06.07.2009 14:46

т.е вместо картинки с прозрачными областями, используйте векторный шейп, внутри мувика, который хотите сделать маской.

zaidite 06.07.2009 15:08

Сейчас объясню подробнее.
Есть два одинаковых изображения. Пик1 и Пик2. На изображении Пик1 четырьмя кликами выделяется некая произвольная область. По координатам этих кликов отрисовывается четырёхугольник этой выделенной области. Этот четырёхугольник выделенной области должен стать маской, по которой обрежется изображение Пик2.
В результате должно получится следующее: мы имеем изображение Пик1, на котором видим нашу выделенную область. И фрагмент изображения Пик2, оставшийся после обрезки по области выделения. Но этот фрагмент не должен содержать прозрачности. А должен обрезаться именно по области выделения, для того, что-бы с ним можно было дальше производить трансформации.

dimarik 06.07.2009 15:19

Рисуете шейп-маску mask по координатам вершин четырехугольника. потом
Код AS1/AS2:

Пик2.setMask(mask);


zaidite 06.07.2009 15:27

dimarik, не совсем понимаю, что-такое шейп-маска. Вы имеете в виду использовать класс Shape для рисования маски? Или это что-то другое? Поясните пожалуйста.

alekslitvinenk 06.07.2009 15:32

имелось виду пользоваться графическими API такими как lineTo, curveTo для отрисовки формы.

zaidite 06.07.2009 16:01

Собственно таким образом и создаётся выделенная область. А.а.а.а... Кажется понял... Нужно отрисовать точно такуюже область, по тем-же координатам, только уже в мувике с Пик2 и назначить его маской для Пик2. Я верно понял?

alekslitvinenk 06.07.2009 16:07

ага :)


Часовой пояс GMT +4, время: 04:55.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.