1

是否可以从相机拍摄照片以及日期、时间和位置(纬度 n 长)显示在 iphone 的照片中。

4

1 回答 1

0

是的,这是可能的,

您需要将UIImagePickerController与自定义叠加视图一起使用...

来自 Apple 的文档 @ http://developer.apple.com/library/ios/#documentation/uikit/reference/UIImagePickerController_Class/UIImagePickerController/UIImagePickerController.html

您可以自定义图像选择器控制器来自己管理用户交互。为此,请提供一个包含您要显示的控件的覆盖视图,并使用“捕获静止图像或电影”中描述的方法。除了或代替默认控件,您还可以显示自定义叠加视图。UIImagePickerController 类的自定义覆盖视图在 iOS 3.1 及更高版本中可通过 cameraOverlayView 属性获得。有关代码示例,请参阅 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];

}
于 2013-07-19T06:58:44.003 回答