Я пытаюсь создать захват изображения для своего приложения для iOS, но продолжаю получать искажения цвета в моем результате CGImage.Вот предварительный просмотр камеры, правильные цвета.
Кола красная, все хорошо.
Когда я запускаю свой код снимка, я получаю это:
Кола синего цвета ... откуда это взялось?
Я пытался связываться с некоторыми параметрами, но в итоге не получил изображения вообще,Вот мой код снимка:
int bitsPerComponent = 8;
int bitsPerPixel = 32;
int bytesPerRow = [cameraVideo bufRowBytes];
CGDataProviderRef provider = CGDataProviderCreateWithData(NULL, [cameraVideo bufDataPtr], [cameraVideo bufWidth]*[cameraVideo bufHeight]*4, NULL);
CGColorSpaceRef colorSpaceRef = CGColorSpaceCreateDeviceRGB();
CGBitmapInfo bitmapInfo = kCGImageAlphaNoneSkipLast;
CGColorRenderingIntent renderingIntent = kCGRenderingIntentPerceptual;
CGImageRef imageRef = CGImageCreate( [cameraVideo bufWidth], [cameraVideo bufHeight], bitsPerComponent, bitsPerPixel,
bytesPerRow, colorSpaceRef, bitmapInfo, provider, NULL, NO, renderingIntent);
CGColorSpaceRelease(colorSpaceRef);
Я нахожусь в своем уме, поэтому, если кто-то может понять, что я делаю неправильно, пожалуйста, дайте мне знать.*
Вот окончательный код:
if (cameraVideo.ARPixelFormat == kCVPixelFormatType_32ARGB) {
bitmapInfo = kCGBitmapByteOrder32Big | kCGImageAlphaNoneSkipFirst;
} else {
bitmapInfo = kCGBitmapByteOrder32Little | kCGImageAlphaNoneSkipFirst;
}