2017-05-27 1 views
0

私はSwiftで新しく、ライブラリからライブ写真を選んでイメージビューに表示するアプリケーションを開発していますが、その部分は機能しますが、イメージビューはカスタムイメージを持つ別のイメージビューの上にあります背景画像)。私が保存ボタンを押した瞬間、それはカスタム背景を持つ画像ビューしか保存しません。ライブラリに保存するには次のコードを使用しています:写真ライブラリにPHLivePhotoを保存するにはどうしたらいいですか?

let imageData = UIImagePNGRepresentation(myView.image!) 
let compressedImage = UIImage(data: imageData!) 
UIImageWriteToSavedPhotosAlbum(compressedImage!, nil, nil, nil) 

このコードはもちろん保存ボタンにあります。私が何をしたいか

はその例のように、同時に両方の事を格納する機能、ユーザー与えることです:

を私は背景として、それの上に銀河の画像とImageViewのを持っています私はライブ写真を表示する画像ビューを持っているので、ライブラリーに両方のものを保存したいと思います。ライブラリーで確認すると、銀河の背景を持つ新しいライブ写真が表示されます。

誰かがこの例を理解するかどうかはわかりませんが、問題を説明するのが私ができることだと思います。

** は、これはあなたがbackgroundImageの上にselectedImageを描き、その結果を保存する必要がある例

enter image description here

答えて

0

です。

UIImage

extension UIImage { 
    func saveImage(withImage image: UIImage) -> UIImage? { 
     // create image 
     UIGraphicsBeginImageContext(size) 
     draw(in: CGRect(x: 0, y: 0, width: size.width, height: size.height)) 
     let centeredFrame = CGRect(x: (size.width - image.size.width)/2, y: (size.height - image.size.height)/2, width: image.size.width, height: image.size.height) 
     image.draw(in: centeredFrame) 
     let result = UIGraphicsGetImageFromCurrentImageContext() 
     UIGraphicsEndImageContext() 
     return result 
    } 
} 

のこの拡張機能を追加し、それを

backgroundImageは、カスタム背景であると userImageは、ユーザーライブラリから選択されたライブ写真である
if let newImage = backgroundImage.saveImage(withImage: userImage), let imageData = UIImagePNGRepresentation(newImage), let compressedImage = UIImage(data: imageData) { 
    UIImageWriteToSavedPhotosAlbum(compressedImage, nil, nil, nil) 
} 

を使用しています。

+0

返信いただきありがとうございます。私はいくつかの問題をコードに追加しようとしています:( –

+0

何が問題? –

+0

私は "backgroundImage"を変更する必要があると思います。これは、私のバックグラウンドを参照しているコード部分ですか?コンセント? 私はそれを変更し、それは "サイズ"のメンバーを持っていないようです –

関連する問題