iPhone: कैमरा पूर्वावलोकन ओवरले



uiimageview camera (3)

मैं कैमरे के पूर्वावलोकन पर एक ओवरले ( UIImageView ) कैसे जोड़ूं और इस पर टच को हैंडल करूं?

ऐसा करने के लिए मेरे पिछले प्रयास (जैसे UIImagePickerController उपयोग करें और छवि को एक उप के रूप में जोड़ें) विफल रहे हैं।


Answer #1

आप UIImagePicker बजाय सीधे UIImageView को मुख्य विंडो के उप-भाग के रूप में जोड़ने में सक्षम हो सकते हैं, यह बेहतर काम कर सकता है। बस उन्हें सही क्रम में जोड़ना सुनिश्चित करें, या कॉल करें

[window bringSubviewToFront:imageView];

कैमरा उठने के बाद।

यदि आप UIImageView पर टच हैंडल करना चाहते हैं, तो आप UIImageView को एक पारदर्शी पृष्ठभूमि के साथ सामान्य फ़ुलस्क्रीन View के उप-भाग के रूप में जोड़ सकते हैं, और इसके बजाय विंडो में जोड़ सकते हैं, सामान्य UIViewController Cclass के साथ जिसे आप टच ईवेंट्स को हैंडल करने के लिए उपयोग कर सकते हैं ।


Answer #2

आपकी कार्यान्वयन फ़ाइल के लिए:

- (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;
    }

Answer #3

यह ट्यूटोरियल इसे समझाता है: http://www.musicalgeometry.com/?p=821

बस ट्यूटोरियल में दिखाए गए लाल क्षेत्र के बजाय ओवरले दृश्य में एक UIImage जोड़ें।





uiimagepickercontroller