我使用 Accelerate.framework 中的 vImageConvert_RGB888toPlanar8
和 vImageConvert_Planar8toRGB888
函数将 RGB24 转换为 BGR24,但当需要转换的数据非常大,如 3M 或 4M 时,所需的时间约为 10ms。有没有人知道更快的方法?我的代码如下:
- (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);
}