【发布时间】:2015-04-30 12:24:04
【问题描述】:
我有来自AVAsset 的CVPixelBufferRef。我正在尝试对其应用CIFilter。我使用这些行:
CVPixelBufferRef pixelBuffer = ...
CVPixelBufferRef newPixelBuffer = // empty pixel buffer to fill
CIContex *context = // CIContext created from EAGLContext
CGAffineTransform preferredTransform = // AVAsset track preferred transform
CIImage *phase1 = [CIImage imageWithCVPixelBuffer:pixelBuffer];
CIImage *phase2 = [phase1 imageByApplyingTransform:preferredTransform];
CIImage *phase3 = [self applyFiltersToImage:phase2];
[context render:phase3 toCVPixelBuffer:newPixelBuffer bounds:phase3.extent colorSpace:CGColorSpaceCreateDeviceRGB()];
不幸的是,我得到的结果方向不正确。例如,以纵向模式拍摄的视频是上下颠倒的。我猜问题出在从AVAsset 到CoreImage 坐标系(在XCode 中显示phase2 的预览也会显示不正确的结果)。如何解决?
【问题讨论】:
-
您有没有想过如何修复纵向视频的方向?我也看到了同样的情况,不知道是否只是需要设置一个设置
-
那是前一段时间,所以我不记得确切,但我想我像你在回答中所做的那样对转换进行了硬编码。
标签: ios transformation core-image coordinate-systems cifilter