Вопрос по iphone, camera, uiimageview, uiimagepickercontroller – iPhone: наложение предварительного просмотра камеры

43

Как добавить оверлей (UIImageView) к просмотру камеры и касаться этого?

Мои предыдущие попытки сделать это (например, использоватьUIImagePickerController и добавить изображение как подпредставление) не удалось.

картина говорит тысячу слов Unheilig
Потрясающий набросок! Jayprakash Dubey
ты в итоге решил это? CodeAndCats
Потрясающий рисунок! rpetrich

Ваш Ответ

4   ответа
3

Вы можете добавитьUIImageView как подпредставление главного окна непосредственно вместоUIImagePicker, это может работать лучше. Просто убедитесь, что добавили их в правильном порядке, или позвоните

[window bringSubviewToFront:imageView];

после того, как камера включена.

Если вы хотите обрабатывать прикосновения кUIImageView Вы можете просто добавитьUIImageView как подпредставление обычного полноэкранного режимаView с прозрачным фоном, и добавитьthat вместо окна, с нормальнымUIViewController подкласс, который вы можете использовать для обработки сенсорных событий.

37

http://www.musicalgeometry.com/?p=821

Просто добавьте UIImage в виде наложения вместо красной области, показанной в руководстве.

Я добавил обновленный учебник в свой блог, в котором подробно описывается, как это сделать в iOS 4 и более поздних версиях, используя AVCaptureSession вместо метода UIImagePicker.musicalgeometry.com/?p=1273
@Momeks - см. Редактирование выше, я сохранил в гист!
@ dtt101: Ваша ссылка больше не существует! :Не обнаружена
Здравствуйте, мне тоже нужна информация, но ссылка не работает. Есть ли другие учебники? Спасибо
+1, теперь это явно лучший ответ. Если я не ошибаюсь, cameraOverlayView был добавлен в SDK 3.1.
2

@property(nonatomic, retain) UIView *cameraOverlayView
10

- (IBAction)TakePicture:(id)sender {

    // Create image picker controller
    UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];

    // Set source to the camera
    imagePicker.sourceType =  UIImagePickerControllerSourceTypeCamera;

        // Delegate is self
        imagePicker.delegate = self;

        OverlayView *overlay = [[OverlayView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];     

        // Insert the overlay:
        imagePicker.cameraOverlayView = overlay;

       // Allow editing of image ?
        imagePicker.allowsImageEditing = YES;
        [imagePicker setCameraDevice:
        UIImagePickerControllerCameraDeviceFront];
        [imagePicker setAllowsEditing:YES];
        imagePicker.showsCameraControls=YES;
        imagePicker.navigationBarHidden=YES;
        imagePicker.toolbarHidden=YES;
        imagePicker.wantsFullScreenLayout=YES;

        self.library = [[ALAssetsLibrary alloc] init];

        // Show image picker
        [self presentModalViewController:imagePicker animated:YES];
    }

Создайте класс UIView и добавьте этот код

    - (id)initWithFrame:(CGRect)frame
    {
        self = [super initWithFrame:frame];
        if (self) {
            // Initialization code


            // Clear the background of the overlay:
            self.opaque = NO;
            self.backgroundColor = [UIColor clearColor];

            // Load the image to show in the overlay:
            UIImage *overlayGraphic = [UIImage imageNamed:@"overlaygraphic.png"];
            UIImageView *overlayGraphicView = [[UIImageView alloc] initWithImage:overlayGraphic];
            overlayGraphicView.frame = CGRectMake(30, 100, 260, 200);
            [self addSubview:overlayGraphicView];

        }
        return self;
    }

Похожие вопросы