使用带有覆盖层的iPad / iPhone上的相机

时间:2012-03-19 20:23:43

标签: objective-c ios image

我正在尝试将叠加图像添加到拍摄的照片中。有没有人见过我如何做到这一点的例子?我想要一张透明PNG文件的照片,然后允许用户拍摄包含图像的照片。

1 个答案:

答案 0 :(得分:1)

尤利乌斯是正确的,这实际上是一个重复的问题。但是,仅排除一个问题 - 您希望用户在编写镜头时能够看到叠加层吗? (即如果你的应用程序在人们头上出现不同的帽子,你是否想在他们拍照时展示漂浮在太空中的帽子?)。如果您想了解更多相关信息,您需要使用imagePickerController的cameraOverlayView属性,该属性允许您将自己的视图叠加到相机上。关于此主题的问题已在SO上提出,例如:How to add a overlay view to the cameraview and save it

更新re:缩放 - LilMoke,我假设当你说图像偏移时,你会遇到与相机宽高比(4:3)和屏幕不同的问题iPhone(3:4)。您可以定义一个常量并使用它来设置UIImagePickerController的cameraViewTransform属性。这是一段代码片段,部分借用,并简化了优秀的增强现实教程at raywenderlich.com

#define CAMERA_TRANSFORM  1.24299
// First create an overlay view for your superimposed image
overlay = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
overlay.backgroundColor=[UIColor clearColor];
overlay.opaque = NO;

UIImagePickerController *imagePicker;
imagePicker = [[[UIImagePickerController alloc] init] autorelease];
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePicker.showsCameraControls = YES; // assuming you need these?
imagePicker.toolbarHidden = YES;
imagePicker.navigationBarHidden = YES;
imagePicker.wantsFullScreenLayout = YES;
imagePicker.cameraViewTransform = CGAffineTransformScale(imagePicker.cameraViewTransform, 
    CAMERA_TRANSFORM, CAMERA_TRANSFORM); // If I understood your problem, this should help
imagePicker.cameraOverlayView = overlay;

如果这些代码中的代码没有让您按计划进行,那么也许您可以在此处发布您遇到问题的项目中的所有相关代码。希望这只是设置cameraViewTransform的问题,如上所述。