iPhone UIImage ошибка рендера перекрытия - PullRequest
0 голосов
/ 10 ноября 2009

Я обнаружил странную ошибку рендеринга на iPhone OS 3.0 ...

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

Второй - прозрачный PNG с полупрозрачными облаками.

Когда я накладываю два с использованием UIImageView, пересечение облаков и белого градиента вызывает ошибку рендеринга, которая вызывает довольно странный графический графический сбой, который удаляет всю непрозрачность с изображения сверху (в данном случае облака), и вызывает слитая часть изображения, отображаемая поверх всех слоев в текущем представлении (включая те, что находятся под ним).

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

Кто-нибудь видел это и есть ли у кого-нибудь исправление? Я хочу проверить, прежде чем перейти к Core Animation, которая, я надеюсь, решит проблему (поскольку я предполагаю, что CA или даже OpenGL более склонны обрабатывать перекрывающиеся альфа-каналы).

Скриншот найден здесь:

http://www.jasconi.us/glitch.jpg

Вы можете увидеть пересечение двух изображений в правом нижнем углу.

Ответы [ 2 ]

2 голосов
/ 13 ноября 2009

Из вашего описания это, похоже, ошибка в коде Apple. Я бы сообщил об этом в Apple и дождался исправления.

Тем временем вы можете попытаться реализовать ту же функциональность в Core Animation или OpenGL в надежде, что ошибка находится в высокоуровневом UIImageView, но, поскольку сам UIImageView использует Core Animation, возможно, эта ошибка неизбежно, пока не будет исправлено.

0 голосов
/ 18 ноября 2009

Я предполагаю, что вы отображаете их с помощью UIImageView? Если это так, вы установили непрозрачный на NO на прозрачном виде?

...