2016-06-18 3 views
2

UIImage카메라 화면에 사용자가 사진을 캡처하는 동안 추가하고 싶습니다. 또한 나는 이미지가 포착 된 이미지를 포 그라운드에서 동일한 위치에 추가하려고합니다.
Here the demo image that explain what i want. 내가 가진이이미지를 캡처하는 동안 카메라 화면에 맞춤 이미지를 추가하는 방법은 무엇입니까?

let picker = UIImagePickerController() 
picker.sourceType = .Camera 
picker.view.addSubView(imageView) 

을 시도하지만 어떤 도움에 감사입니다 캡처 이미지

에 이미지를 추가하지에만 이미지를 추가 할이 코드를 사용하여 주위에
작동합니다.

답변

1

당신은 카메라 화면의 상단에 imageView을 추가 UIImagePickerControllercameraOverlayView 속성을 사용할 수 있습니다 : 당신이 UIImage에 대한 확장을 만들 수 있습니다 캡처 된 사진의 전경에 이미지를 추가하려면

let picker = UIImagePickerController() 
picker.delegate = self 
picker.sourceType = .Camera 
picker.cameraOverlayView = imageView 

presentViewController(picker, animated: true, completion: nil) 

:

:
extension UIImage { 
    func imageWithOverlayImage(overlayImage: UIImage) -> UIImage { 
    let imageRect = CGRectMake(0, 0, self.size.width, self.size.height) 

    UIGraphicsBeginImageContext(self.size) 

    self.drawInRect(imageRect) 
    overlayImage.drawInRect(imageRect) 

    let resultImage = UIGraphicsGetImageFromCurrentImageContext() 
    UIGraphicsEndImageContext() 
    return resultImage 
    } 
} 

그런 다음 이미지 피커의 대리자 메서드에서 호출 할 수 있습니다

+0

이미 시도했지만 나에게 도움이되지 못했습니다. 도와 주셔서 감사합니다. –

+0

@NiravDoctorwala 왜 이것이 작동하지 않는지 설명 할 수 있습니까? –

+0

이 질문을 게시하기 전에 이미 두 개의 이미지를 병합하려고했지만 ID가 제대로 작동하지 않았습니다. 또한 코드를 시도하지만 두 이미지를 올바르게 병합하지 않습니다. –

0

오버레이 뷰를 사용해보세요. overlayview에 사용자 정의 이미지를 추가하십시오.

func openCamera(){ 

     let pickercontroller : UIImagePickerController = UIImagePickerController() 
     pickercontroller.delegate = self 

     if(UIImagePickerController .isSourceTypeAvailable(UIImagePickerControllerSourceType.Camera)){ 

      pickercontroller.sourceType = UIImagePickerControllerSourceType.Camera 
     } 
     else{ 
     } 

     pickercontroller.editing = false 
     pickercontroller.showsCameraControls = false 
     let graphRect:CGRect = CGRectMake(0, 0,pickercontroller.view.frame.size.width-20 ,pickercontroller.view.frame.size.height) 

     let overlayView : UIView = UIView(frame: graphRect) 
     overlayView.backgroundColor = UIColor(colorLiteralRed: 0.0/255.0, green: 0/255.0, blue: 0.0/255.0, alpha: 0.5) 
     overlayView.layer.opaque = false 
     overlayView.opaque = false 

     var maskLayer : CAShapeLayer = CAShapeLayer() 
     overlayView.layer.mask = maskLayer 
     } 
+0

이미 오버레이 뷰를 사용해 보았습니다.이 뷰는 오버레이 뷰를 카메라 화면에 추가합니다. 원하는 것은 이미지가 클릭되었을 때 런타임에 카메라 이미지와 복장 이미지가 병합됩니다. –

관련 문제