2017-05-27 159 views
0

我是Swift中的新成員,我正在開發一款應用程序,可以從庫中選取實時照片並將其顯示在圖像視圖上,直到該圖像可以工作爲止,但imageview位於另一個具有自定義圖像的圖像視圖之上(如背景圖像)。當我點擊保存按鈕時,它只存儲具有自定義背景的圖像視圖。我正在使用以下代碼將其存儲在庫上:如何將PHLivePhoto保存到照片庫?

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

此代碼當然是保存按鈕。

我想要做的就是給用戶的是能力兩件事存儲在同一時間,例如像:

我有一個ImageView的一個星系的圖片作爲背景,在它之上我有一個顯示現場照片的圖像視圖,所以我想將這兩個東西存儲到圖書館,當我在圖書館檢查它時,我將獲得一張帶有銀河背景的新照片。

我不知道有人會理解這個例子,但是我認爲這是我能做的最好的來描述這個問題。

** 這就是例子

enter image description here

回答

0

您需要繪製selectedImagebackgroundImage的頂部,並保存結果。

添加這個擴展的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 
    } 
} 

而且使用它

if let newImage = backgroundImage.saveImage(withImage: userImage), let imageData = UIImagePNGRepresentation(newImage), let compressedImage = UIImage(data: imageData) { 
    UIImageWriteToSavedPhotosAlbum(compressedImage, nil, nil, nil) 
} 

哪裏backgroundImage是自定義背景和userImage是從用戶庫中選擇現場照片。

+0

感謝您的回覆!我有一些問題,試圖將代碼添加到我的代碼:( –

+0

最新問題? –

+0

我想我必須將「backgroundImage」更改爲什麼它是指代我的背景的代碼片段?插件? 事情是我改變它,它似乎沒有「大小」的成員 –