ipad, sdk, CGBitmapContextCreate - PullRequest
       5

ipad, sdk, CGBitmapContextCreate

0 голосов
/ 15 октября 2010

сейчас я работаю над приложением, которое принимает cgimageref, обрабатывает пиксели изображения и возвращает обработанный cgimageref.Чтобы проверить, как это работает, я просто написал код для передачи cgimageref и ожидает, что это же изображение будет возвращено без обработки.Но проблема в том, что я не могу получить точное изображение.Полученный цвет изображения полностью изменился.Если это неправильный способ сделать это, то, пожалуйста, предложите мне лучший способ сделать это.Вот код

  - (CGImageRef) invertImageColor :(CGImageRef) imageRef  {
     CFDataRef dataRef = CGDataProviderCopyData(CGImageGetDataProvider(imageRef));
     UInt8 * m_PixelBuf = (UInt8 *) CFDataGetBytePtr(dataRef);
     // my editing code goes here but for testing this part is omitted. i will it later             
     //when this issue is solved.
     CGContextRef ctx = CGBitmapContextCreate(m_PixelBuf,
                                         CGImageGetWidth( imageRef ),
                                         CGImageGetHeight( imageRef ),
                     CGImageGetBitsPerComponent(imageRef),
                     CGImageGetBytesPerRow( imageRef ),
                                             CGImageGetColorSpace( imageRef ),
                                             kCGImageAlphaPremultipliedFirst );

     CGImageRef newImageRef = CGBitmapContextCreateImage (ctx);
     CGContextRelease(ctx);

     return newImageRef;}

1 Ответ

1 голос
/ 16 октября 2010

Предполагается, что входное изображение предварительно умножено на альфа и сохранено перед компонентами цвета. Не думай об этом. Получите информацию о растровом изображении и передайте ее CGBitmapContextCreate.

Обратите внимание, что CGBitmapContext не работает со всеми возможными форматами пикселей. Если ваше входное изображение имеет пиксельный формат, который не нравится CGBitmapContext, вам просто нужно использовать отдельный буфер и нарисовать входное изображение в контексте.

...