UIImage / CGImage меняющий цвет моего пикселя - PullRequest
1 голос
/ 17 августа 2011

У меня есть изображение полностью белого цвета с компонентами RGB с разной альфа-формой, например, 0xFFFFFF09 в формате RGBA.Но когда я загружаю это изображение с помощью API UIImage или CGImage, а затем рисую его в CGBitmapContext, оно получается в градациях серого, а для компонентов RGB установлено значение альфа - так что в моем примере выше пиксель получился бы0x09090909 вместо 0xFFFFFF09.Таким образом, изображение, которое должно быть белым с различной прозрачностью, получается по существу черным с прозрачностью.В загружаемом PNG-файле нет ничего плохого - все графические программы отображают его корректно.

Мне было интересно, может ли это быть как-то связано с моим использованием kCGImageAlphaPremultipliedFirst, но я не могу с ним поэкспериментироватьпотому что CGBitmapContextCreate терпит неудачу с другими значениями.

Конечная цель - получить пиксельные данные, которые я могу загрузить в текстуру с помощью glTexImage2D.Я мог бы использовать libPNG, чтобы полностью обойти iOS API, но есть ли другие предложения?Большое спасибо.

1 Ответ

0 голосов
/ 17 августа 2011

Белый на черном фоне с альфа-каналом x означает серое значение, соответствующее x во всех компонентах.Вот как работает мультипликативное смешивание.

...