5

私のアプリには、「カメラからのキャプチャ」機能があり、静止画像をキャプチャするときに、Brad Larson (ty) による GPUImageFramework、GPUImageStillCamera を使用しています。

stillCamera = [[GPUImageStillCamera alloc] initWithSessionPreset:AVCaptureSessionPresetPhoto cameraPosition:
               AVCaptureDevicePositionBack];

ご覧のように。Session プリセットはAVCaptureSessionPresetPhoto、iPhone 4 では 1529x2048 の出力を提供し、4s (8mp) デバイスでは 2448x3264 を提供します。

下の画像は GPUStillCamera の使用方法です。ここでは、この場合、キャプチャされた画像のトリミング四角形である四角形があります。

スチルカメラ出力

画像をキャプチャするときのコード スニペット。

- (IBAction)takePhoto:(id)sender
{
        [stillCamera capturePhotoAsJPEGProcessedUpToFilter:filter withCompletionHandler:^(NSData *processedJPEG, NSError *error){

        //1529x2048 when iPhone 4 and 2448x3265 when on 4s
        UIImage *rawImage = [[UIImage alloc]initWithCGImage:[[UIImage imageWithData:processedJPEG]CGImage]scale:1.0 orientation:UIImageOrientationUp];

       **CGRect rect = CGRect{?,?,?,?};**
       UIImage *imageFromRect = [rawImage imageAtRect:rect ];
}

私の質問はここにあります。imageAtRectからサブイメージを描画するメソッドに渡すことができるポイント (x、y、w、h) を知るにはどうすればよいrawImageですか? 上の画面に示すように、 (キャプチャした画像の解像度に関係なく)長方形内の画像部分のみを取得しますか? 手動で行う必要がありますか、それとも提案できる数学テクニックはありますか?

ありがとう!

4

1 に答える 1

0

この画像トリミング クラスと libray ファイルを使用して、トリミングされた のサイズと原点位置を取得できますUIImage

http://code4app.net/ios/Custom-image-cropper/51e5f03f6803fac530000000

さらに、必要に応じて、トリミング画像のサイズを動的に変更できます。使い方も実装も簡単。一度チュートリアルをご覧ください。

于 2014-07-01T06:43:11.233 に答える