Маскинг и обрезка в PyCairo [Урок 6]

автор

В данной части курса PyCairo мы поговорим об обрезке и маскирующих операциях. Изображения, используемые в данном учебном материале можно скачать здесь.

Обрезка

Обрезка – это ограничение рисунка в конкретно взятой области. Это делается из соображений эффективности и для создания интересных эффектов. Метод clip() в PyCairo применяется для создания вырезки.

В данном примере мы обрежем изображение. Круг перемещается по области окна и показывает часть нашего изображения. Как если бы мы смотрели на что-то сквозь круглое отверстие.

Это основное изображение. Мы будем видеть часть этого изображения после каждого цикла таймера.

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

Данная линия добавляет круговой путь к контексту Cairo.

Метод clip()  устанавливает область обрезки. Область обрезки – это используемый путь. Этот путь был создан при помощи метода arc().

Метод paint() зарисовывает выбранный исходник внутри всей области его обрезки.

Маскировка

Перед тем как нанести исходник на поверхность, его нужно отфильтровать. Маска используется в качестве фильтра. Маска определяет, где исходник будет наноситься, а где нет. Непрозрачные части маски позволяют копировать исходник на поверхность. Прозрачные части не позволяют копировать исходник на поверхность.



В данном примере, маска определяет, где рисовать, а где не рисовать.

Мы используем изображение в качестве маски, таким образом, отображая его в окне.

Вам может быть интересно

Scroll Up