前提・実現したいこと
objective-cを利用してデバイス側のスクリーンショットを実装した際に
ドローンの映像をスクリーンショットする方法
発生している問題
保存されたファイルにはドローンの映像が映らず、ボタンとラベルのみが表示されている
該当のソースコード
objective
1 // キャプチャ対象をWindowにします。 2 UIWindow *window = [[UIApplication sharedApplication] keyWindow]; 3 4 // キャプチャ画像を描画する対象を生成します。 5 UIGraphicsBeginImageContextWithOptions(window.bounds.size, NO, 0.0f); 6 CGContextRef context = UIGraphicsGetCurrentContext(); 7 8 // Windowの現在の表示内容を1つずつ描画して行きます。 9 for (UIWindow *aWindow in [[UIApplication sharedApplication] windows]) { 10 [aWindow.layer renderInContext:context]; 11 } 12 13 // 描画した内容をUIImageとして受け取ります。 14 UIImage *capturedImage = UIGraphicsGetImageFromCurrentImageContext(); 15 16 //ImageをData型に変換 17 NSData *data = UIImagePNGRepresentation(capturedImage); 18 19 BOOL result; 20 21 // NSFileManagerの取得 22 NSFileManager *fm = [NSFileManager defaultManager]; 23 24 // /Documentのパスの取得 25 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 26// NSString *DocumentsDirPath = [paths objectAtIndex:0]; 27 28 //ファイル名作成 29 NSString *filename = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"sample.png"]; 30 31 //ファイル作成 32 result = [fm createFileAtPath:filename contents:data attributes:nil]; 33 34 // 描画を終了します。 35 UIGraphicsEndImageContext(); 36 37 [self.requestsManager addRequestForUploadFileAtLocalPath:filename toRemotePath:@"/"]; 38 [self.requestsManager startProcessingRequests]; 39 40 self.Sample2 = filename;
試したこと
VIEWを指定してスクリーンショットを実装しましたが、うまく表示されません。
-(void)FpvView:(UIImage*)image{ UIGraphicsEndImageContext(); //ImageをData型に変換 NSData *data = UIImagePNGRepresentation(image); BOOL result; // NSFileManagerの取得 NSFileManager *fm = [NSFileManager defaultManager]; // /Documentのパスの取得 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); //NSString *DocumentsDirPath = [paths objectAtIndex:0]; //ファイル名作成 NSString *filename = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"sample.png"]; //ファイル作成 result = [fm createFileAtPath:filename contents:data attributes:nil]; // 描画を終了します。 UIGraphicsEndImageContext(); [self.requestsManager addRequestForUploadFileAtLocalPath:filename toRemotePath:@"/"]; [self.requestsManager startProcessingRequests]; }
補足情報(FW/ツールのバージョンなど)
・使用しているドローン:MAVIC AIR
あなたの回答
tips
プレビュー