Я использую vImageConvert_RGB888toPlanar8
и vImageConvert_Planar8toRGB888
из Accelerate.framework для преобразования RGB24 в BGR24, но когда данные, которые необходимо преобразовать, очень велики, например, 3M или 4M, время, необходимое для этого, составляет около 10 мс. Итак, кто-нибудь знает какую-нибудь достаточно быструю идею? Мой код такой:
- (void)transformRGBToBGR:(const UInt8 *)pict{
rgb.data = (void *)pict;
vImage_Error error = vImageConvert_RGB888toPlanar8(&rgb,&red,&green,&blue,kvImageNoFlags);
if (error != kvImageNoError) {
NSLog(@"vImageConvert_RGB888toARGB8888 error");
}
error = vImageConvert_Planar8toRGB888(&blue,&green,&red,&bgr,kvImageNoFlags);
if (error != kvImageNoError) {
NSLog(@"vImagePermuteChannels_ARGB8888 error");
}
free((void *)pict);
}