Открываем старый MS Paint Brush из Windows 95-XP, открываем Adobe Photoshop, открываем любой другой растровый редактор графики - там везде тоже есть выделение произвольной области.
Открываем PaintCAD - там посвящен выделению единственный пункт в меню Выделения и буфера обмена (Alt+Ю в PCW, # в PCM), но на нем нарисовано прямоугольное выделение!
Пробуем выделить фрагмент рисунка - да, это обычное прямоугольное выделение.
Так как же выделить произвольную часть рисунка чтобы потом перенести ее на другой рисунок или применить к ней эффект?
Маскирование
PaintCAD вырос на мобильной J2ME платформе, на которой количество оперативной памяти всегда небольшое (например, 500 КБайт, 1 Мбайт или 2 Мбайт). Для создания "произвольного выделения" пришлось бы создавать дополнительный буфер, в который бы запоминалось какой пиксель входит в выделенную область, а какой не входит. А лишний буфер в памяти - это еще меньше памяти для хранения самого рисуемого изображения. Поэтому вместо "произвольного выделения" было введено "маскирование", которое не требует создания дополнительных буферов и экономит память!
Суть такова:
1) у нас есть рисунок, на котором мы хотим выделить произвольную область (скриншот титульного экрана игры Open Transport Tycoon Deluxe)
2) выбираем в палитре цвет, которого ТОЧНО НЕТ на рисунке. Обычно это ярко-зеленый RGB=0;255;0 или ярко-фиолетовый RGB=255;0;255. Я возьму ярко-фиолетовый RGB=255;0;255.
Чтобы проверить, что фиолетового цвета RGB=255;0;255 точно нет на рисунке - можно использовать "Поиск пикселя" (поиск пикселей есть только в Windows-версии паинткада).
Вызываем поиск пикселя (нажмите 0 (ноль) на клавиатуре чтобы показать верхнее меню):
Выбираем искомый цвет:
Убеждаемся, что его нет по строке статуса (а если будет найден - то курсор будет перемещен в место на рисунке, где находится пиксель искомого цвета):
3) Включаем инструмент "Полилиния".
4) Обрисовываем нужные объекты полининией в замкнутые контуры. Точно также как при выделении произвольной области в MS Paint или в Adobe Photoshop с помощью "лассо". Для прерывания текущего контура и старта нового - просто выберите инструмент "Полилиния" в меню инструментов еще раз.
Я взял в контуры буквы TTD и окно.
Вот обрисованные контурами буквы при увеличении. Внутри D тоже контур.
5) Включаем инструмент "Заливка 2".
Этот инструмент заливает цветом ПЦ до тех пор, пока не упрется в конкретный цвет ЗЦ. Более подробно о "Заливке 2" можно прочитать в помощи по F1.
6) Для заливки в ПЦ и в ЗЦ надо положить фиолетовый цвет RGB=255;0;255.
Почему: потому что надо залить все фиолетовым цветом кроме очерченных контурами фигур. Т.е. заливать цветом ПЦ "Фиолетовый" весь фон рисунка до тех пор, пока заливка не упрётся в цвет ЗЦ - т.е. в наши контуры цвета "Фиолетовый".
Кладём RGB=255;0;255 в ПЦ и ЗЦ:
7) Льем "Заливку 2" в левый верхний угол картинки. Она, как положено, дотекает до наших фиолетовых (цвета ЗЦ) контуров и останавливается.
Внутри D осталась незалитая, но очерченная фиолетовым контуром область. Льем "Заливку 2" и туда тоже.
Получилась картинка, на которой желаемые объекты находятся на фиолетовом фоне (маске фиолетового цвета). Теперь их можно, например, вставлять на другой рисунок или применять к ним эффекты (точно так же, как и в фотошопе или паинте с выделенными "лассо" объектами").
Вставка маскированных объектов на другой рисунок
1) Копируем наш рисунок с фиолетовой маской в буфер через команду "Копировать" в меню "Выделение и буфер обмена" (Alt+Ю в PCW, # в PCM)
Или просто через меню "Правка"-"Копировать" (или по Ctrl+C) (нажмите 0 (ноль) на клавиатуре чтобы показать верхнее меню):
2) Открываем рисунок, на который будем вставлять маскированные объекты. Я взял скриншот титульного экрана Worms 3D.
3) Обычная "Вставка" не учитывает маски, а просто вываливает все, что было в буфере, на рисунок. Поэтому воспользуемся "Спецвставкой".
Вызываем "Спецвставку" в меню "Выделение и буфер обмена" (Alt+Ю в PCW, # в PCM)
Или просто через меню "Правка"-"Спецвставка" (или по Ctrl+Alt+V):
4) Спецвставка просит указать "прозрачный цвет", т.е. цвет маски.
Она вставит все пиксели рисунка КРОМЕ выбранного цвета. Нам как раз это и нужно.
Выбираем кнопкой "Пробел" фиолетовый цвет маски RGB=255;0;255 как прозрачный цвет на рисунке.
5) Далее Спецвставка попросит указать место куда вы желаете вставить маскированные объекты из буфера.
Слева внизу окна показывается точка опоры. Кнопками Q,W,E,A,S,D,Z,X,C или кликом мыши на эти ячейки точки опоры можно выбрать с какой стороны от курсора будет вставляемое изображение.
Дополнительные возможности окна вставкиПоказать
Кнопкой F2 можно развернуть окно на весь экран (чтоб лучше было видно вставляемые объекты и место, куда они будут вставлены).
Кнопкой с красной мишенью внизу окна (или по Ctrl+G) можно указать конкретные координаты вставки X:Y.
Синей кнопкой "Случайно" (или по Shift+R) можно выбрать случайную позицию вставки (иногда требуется вставить несколько объектов в случайные места).
Кнопкой "Прокрутка" (или по Shift+S) можно указать будет ли ездить фоновая картинка относительно вставляемого объекта (Прокрутка включена, кнопка зеленая) или вставляемый объект относительно фоновой картинки (Прокрутка выключена, кнопка красная).
Кнопкой "Цикл" (или по Shift+Z) можно указать будет ли перескивать курсор на противоположную сторону фоновой картинки если доедет до ее границы (Цикл включен, кнопка зеленая) или курсор вместе с вставляемым объектом будет просто уезжать дальше за границу фоновой картинки (Цикл выключен, кнопка красная).
Кнопкой с красной мишенью внизу окна (или по Ctrl+G) можно указать конкретные координаты вставки X:Y.
Синей кнопкой "Случайно" (или по Shift+R) можно выбрать случайную позицию вставки (иногда требуется вставить несколько объектов в случайные места).
Кнопкой "Прокрутка" (или по Shift+S) можно указать будет ли ездить фоновая картинка относительно вставляемого объекта (Прокрутка включена, кнопка зеленая) или вставляемый объект относительно фоновой картинки (Прокрутка выключена, кнопка красная).
Кнопкой "Цикл" (или по Shift+Z) можно указать будет ли перескивать курсор на противоположную сторону фоновой картинки если доедет до ее границы (Цикл включен, кнопка зеленая) или курсор вместе с вставляемым объектом будет просто уезжать дальше за границу фоновой картинки (Цикл выключен, кнопка красная).
7) Также будет запрос на прозрачность вставляемых объектов. Выбираем 0% (полностью непрозрачные объекты). Хотя можно выбрать, например, 50% и тогда вставляемые объекты станут на финальной картинке полупрозрачными (сквозь них будет видна фоновая картинка).
8) Спецвставка сработает и объекты будут вставлены на рисунок с учетом того, что фиолетовая маска - это прозрачный цвет и вставлять ее не надо.
Вот так в PaintCAD Mobile/4Windows можно выделить произвольные объекты маскированием (контурами с помощью "Полининии", а потом заливкой фона с помощью "Заливки 2") и вставить их на любой другой рисунок.