сейчас я работаю над приложением, которое принимает 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;}