![]() |
Как можно скопировать пиксели из не прямоугольной области?
Собственно, сабж.
Нужно сделать что-то типа, lasso / polygonal lasso в фотошопе. Допустим, загружаю изображение, обвожу мышкой какой-нибудь кусок, и хочу, чтобы в новую битмапку скопировалась только выделенная область, а все остальное стало альфа каналом. Кто-нибудь знает как реализовать? =) |
Наверное копировать придется всю область (прямоугольником) по габаритам выделенной области. А потом шаманить с совмещением двух битмап — прямоугольной и той, в которую отрисована форма выделения.
|
РисуеТСЯ фигура мышкой, добавляется в пустой объект BitmapData с прозрачными пикселами - такого же размера как и исходный. Ну а потом copyChannel().
Точнее можно сделать прямоугольник под размер картинки, скажем, зеленого цвета. Плюсануть к нему объект произвольной формы (красного цвета) и конвертировать их в растр. Ну а потом copyChannel() - Красный на Альфа. |
MAPUTO, а есть пример? Что-то не могу сообразить
|
Типа того. Возможны ошибки - код не компилировал.
Код AS3:
|
Смысл понятен, спасибо =)
|
у copyPixels есть параметр alphaBitmapData
|
Ребят, извините, но во-первых, вы копируете цвета всех пикселей в прямоугольнике, в том числе невидимых. И это бы ладно, но вы еще для всех видимых устанавливаете альфу 100%. А если они были полупрозрачные?
|
Тема баян. Ну раз уж на то пошло, перечитайте вопрос. Смысл был в реализации инструмента наподобие лассо в фотошопе. Не понимаю, каким боком сюда вообще можно отнести alphaBitmapData.
PsixokoT явно в вопрос не вник |
Я бы предложил поиграться (самому сейчас некогда, увы) с Graphics и bitmapFill – Лассо рисует фигуру, заливаемую битмапдатой исходного изображения.
|
| Часовой пояс GMT +4, время: 02:34. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.