iPhoneの写真に日付、時刻、場所(緯度と経度)が表示された状態でカメラから写真を撮ることは可能ですか。
1 に答える
はい、これは可能です、
カスタムオーバーレイビューでUIImagePickerControllerを使用する必要があります...
イメージ ピッカー コントローラーをカスタマイズして、ユーザー インタラクションを自分で管理できます。これを行うには、表示するコントロールを含むオーバーレイ ビューを提供し、「静止画像または動画のキャプチャ」で説明されている方法を使用します。デフォルト コントロールに加えて、またはデフォルト コントロールの代わりに、カスタム オーバーレイ ビューを表示できます。UIImagePickerController クラスのカスタム オーバーレイ ビューは、cameraOverlayView プロパティを介して iOS 3.1 以降で使用できます。コード例については、PhotoPicker サンプル コード プロジェクトを参照してください。
さらに、必要なすべてのデータ、時間、地理座標などをUIImagePickerControllerMediaMetadataから取得できます
カスタム オーバーレイ ビューにラベルを設定するために使用できます。
このメソッドを使用したくない場合は、AVCamCaptureManager および AVCamRecorder クラスを使用して簡単に行うこともできます。
「Apple は、ここの開発者サイトにビルドされたデモ プログラムを持っています。AVCam という名前です。簡単に言えば、クリックしてカメラを開くと、iPhone のカメラを開いてビデオを記録するクラスとメソッドを呼び出します。またはオーディオをキャプチャします. UIImagePickerController によって呼び出されるのと同じクラスを呼び出します. したがって, カメラが開き, 入力の取得を開始します. さて, その AVCam プロジェクトの xib ファイルを開くと, 小さな UIView オブジェクトが見つかります. このビューはカメラのフィードの表示を担当します。必要なサイズに応じてそのビューのサイズを変更すると、カメラの入力がその領域に表示されます。また、選択に応じて、その周りにフレーム イメージを配置することもできます。
写真を撮った後に UIImage に文字列を追加するコード:
//Add text to UIImage
-(UIImage *)addText:(UIImage *)img text:(NSString *)text1{
int w = img.size.width;
int h = img.size.height;
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef context = CGBitmapContextCreate(NULL, w, h, 8, 4 * w, colorSpace, kCGImageAlphaPremultipliedFirst);
CGContextDrawImage(context, CGRectMake(0, 0, w, h), img.CGImage);
CGContextSetRGBFillColor(context, 0.0, 0.0, 1.0, 1);
char* text = (char *)[text1 cStringUsingEncoding:NSASCIIStringEncoding];// "05/05/09";
CGContextSelectFont(context, "Arial", 18, kCGEncodingMacRoman);
CGContextSetTextDrawingMode(context, kCGTextFill);
CGContextSetRGBFillColor(context, 255, 255, 255, 1);
//rotate text
CGContextSetTextMatrix(context, CGAffineTransformMakeRotation( -M_PI/4 ));
CGContextShowTextAtPoint(context, 4, 52, text, strlen(text));
CGImageRef imageMasked = CGBitmapContextCreateImage(context);
CGContextRelease(context);
CGColorSpaceRelease(colorSpace);
return [UIImage imageWithCGImage:imageMasked];
}