Apenas na teoria: como o componente alfa é pré-multiplicado nos outros componentes de um PNG no iPhone OS e como pode ser não-multiplicado adequadament

Na verdade, pensei que haveria uma maneira fácil de conseguir isso. O que eu preciso é pura informação de valor alfa. Para testar, tenho um PNG de 50 x 55 px, em que em cada borda um retângulo de 5x5 pixels é totalmente transparente. Nessas áreas, o alfa deve ser 0. Em qualquer outro lugar, ele deve ser 255. Eu tive certeza de que meu PNG foi criado corretamente e também de aparência correta.

Por favor, diga-me se isso está teoricamente correto: criei um CGImageRef que possui apenas o canal alfa e nada mais. Isso é feito com CGBitmapContextCreate e kCGImageAlphaOnly como param. CGBitmapContextGetBitsPerPixel (context) retorna-me 1, indicando que realmente tenho apenas um componente por pixel: o valor alfa desejado. Eu tenho lido que CGBitmapContextCreate manipulará toda a conversão da imagem fornecida para o novo contexto criado. Minha imagem era anteriormente PNG-24 com transparência, mas o pngcrunch do Xcode parece convertê-los de alguma form

Então, apenas na teoria: tenho alguma chance de obter o alfa correto e não multiplicado neste momento? Os valores que recebo parecem quase coincidir, mas em um grande quadrado transparente de 5x5 recebo valores como 19, 197, 210, 0, 0, 0, 98 e assim por diante. Se fossem verdade, eu teria que ver algo da imagem. A imagem em si é azul sólida.

questionAnswers(3)

yourAnswerToTheQuestion