Нет такой вещи как "прозрачные" пиксели.Все, что вы можете сделать, это пометить их для средства визуализации, чтобы он знал, что они не должны отображаться.Вот 3 наиболее распространенных способа пометки, но какой из них вы используете, зависит от того, когда вы делаете для рендеринга:
- Используйте карту прозрачности: второе растровое изображение, которое указывает «уровень» прозрачностикаждый пиксель.Затем рендеринг использует это как весовое значение для объединения верхнего и нижнего слоев в окончательный цвет.Если вам нужна только двоичная прозрачность (непрозрачная / прозрачная), вы можете использовать растровое изображение и использовать простое XOR для каждого пикселя, что делает его очень быстрым.
- Определите «прозрачный цвет».Затем вы можете XOR с прозрачным цветом и нижним слоем.Также очень быстро и не требует дополнительного хранения.Однако у него есть некоторые побочные эффекты (например, один цвет нельзя использовать в изображении верхнего слоя)
- использует последний байт 32-битного растрового изображения в качестве уровня прозрачности (альфа-канал).По сути, вы сохраняете карту прозрачности (255 различных уровней прозрачности) вместе с изображением.
Теперь, в вашем случае, поскольку вы, похоже, копируете только прямоугольник поверх прямоугольника, еще один подход, которыйбыло бы: создать холст того же размера, что и конечное изображение, скопировать нижний прямоугольник на него и нарисовать слой to поверх него.