Раньше я не рассматривал подобные операции, но думаю, что есть способ выполнить их, используя форму Rect .Вы можете определить прямоугольники, чтобы отметить, какие области должны быть нарисованы на холсте, а какие - из исходного изображения, а класс Rect
имеет некоторые встроенные функции сравнения.Например, чтобы имитировать входной источник, вы можете использовать setIntersect(Rect boundingBoxOfSource, Rect boundingBoxOfDestination)
, чтобы ваш новый прямоугольник имел только пересеченную область двух изображений.Затем вы можете использовать этот прямоугольник в качестве аргумента в одной из команд рисования Canvas, указав ему брать только пиксели из исходного изображения, которые находятся внутри этого прямоугольника.Затем вы управляете рисованием по оси Z в порядке, в котором выполняются команды рисования.