У меня есть графическая система для Java, которая позволяет объектам «оборачиваться», указав несколько изображений, к которым могут применяться (относительно) сложные параметры выравнивания и изменения размера.
Для адекватной работы (особенно на устройствах с очень низким энергопотреблением) я выполняю рисование изображения на внутреннем изображении, когда обои сначала окрашиваются, а затем копирую это составное изображение в целевой графический контекст, чтобы передать его на экран. Затем составная часть воссоздается, только если размер объекта изменяется, поэтому единственной работой для последующих перерисовок является копирование обрезанной области из составной части в целевой графический контекст.
Решение работает очень хорошо, за исключением того, что когда у меня есть PNG-изображения с прозрачностью альфа-канала, альфа-канал теряется при рисовании композита, то есть в композите все пиксели полностью непрозрачны. Поэтому последующее копирование в экранный графический контекст не позволяет просвечивать то, что скрыто за обоями.
Мне удалось использовать RGBImageFilter, чтобы отфильтровать полностью прозрачные пиксели, но я не вижу решения с этим, чтобы заставить смешанную прозрачность работать.
Кто-нибудь знает, как я могу рисовать изображения с неповрежденным альфа-каналом и комбинировать их, если два пикселя с альфа-значениями перекрываются?