2016-06-18 8 views
2

私はカスタムをに追加したいと思います。カメラ画面写真をキャプチャしています。また、私は、画像が追加された同じ位置にそのキャプチャされた画像の前景にその画像が欲しい。
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

この質問を投稿する前に2つのイメージをマージしようとしましたが、IDが正しく機能しませんでした。また、あなたのコードを試しても、2つの画像を適切にマージすることはありません。 –

0

オーバーレイビューを入れてみてください。オーバレイビューにカスタム画像を追加する

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

私はすでにオーバーレイビューを試しています。これは、カメラの画面上にオーバーレイビューを追加するだけです。画像がクリックされたときに実行時にドレス画像がカメラ画像とマージされます。 –

関連する問題