1

私はcaptureStillImageAsynchronouslyFromConnection:を使用して、カメラから画像サンプルバッファーを取得しています。その後、OpenGL(GPU)を介して画像を実行してフィルターを適用していますが、残念ながらAppleの誰かがiPhone 4にカメラを置き、出力が最大テクスチャサイズよりも大きくなっています。

Brad Larsonsの説明:iPhone 4は、それらのデバイスのGPUの最大テクスチャサイズ(2048x2048)を超えるだけの十分な大きさ(2592x1936)の写真を撮ることができるという点で特殊なケースです。現在、これにより処理が失敗します。他のすべてのデバイスは、それほど大きな写真を撮らないか、より大きなテクスチャサイズをサポートします(iPad 2、iPad 3、およびiPhone 4Sはこれらのより大きなサイズをサポートします)。

だから私が持っているコードは画像を縮小していますが、iPhone 4でサイズ変更した後にCMSampleBufferRefを作成して、キャプチャプロセスをごまかす必要があります... CIImageからCMSampleBufferRefを取得する方法を知っている人はいますか?

Objective-C CIImage *ciImage = [CIImage imageWithCVPixelBuffer:CMSampleBufferGetImageBuffer(sampleBuffer) options:[NSDictionary dictionaryWithObjectsAndKeys:[NSNull null], kCIImageColorSpace, nil]]; ciImage = [[ciImage imageByApplyingTransform:myScaleTransform] imageByCroppingToRect:myRect];

4

0 に答える 0