2017-04-19 13 views
0

私は、ユーザーが別のイメージの上に1つのイメージを重ね合わせることができるはずのiOSアプリケーションを作っています。ユーザーは、imageViewというUIImageViewに保存される背景イメージを選択できます。ユーザは、その画像の上に重ねられる画像を決定することができ、画像はimageTwoというUIImageViewに格納される。その後、ユーザーはimageTwoを移動してサイズ変更することができます。しかし、私はそれらの画像ビューを1つの画像にマージしてダウンロードしたいと思っています。異なるサイズの2つのUIImageViewをマージする

私は現在、画像をダウンロードしようとするには、以下の機能を使用しています:

@IBAction func downloadImage(_ sender: Any) { 
let bottomImage:UIImage = imageView.image! 
let topImage:UIImage = imageTwo.image! 

let mySize = CGSize(width: (imageView.frame.size.width), height:(imageView.frame.size.height)) 

UIGraphicsBeginImageContextWithOptions(mySize, false, 1) 
bottomImage.draw(in: CGRect(x: 0,y:0,width: mySize.width,height: mySize.height)) 
topImage.draw(in: CGRect(x: imageTwo.frame.origin.x ,y: imageTwo.frame.origin.y , width: (imageTwo.frame.size.width),height:(imageTwo.frame.size.height)), blendMode:CGBlendMode.normal, alpha:1.0) 
let newImage:UIImage = UIGraphicsGetImageFromCurrentImageContext()! 
UIImageWriteToSavedPhotosAlbum(newImage, nil,nil,nil) 
UIGraphicsEndImageContext() 
} 

しかし、それは非常にうまく機能しません。私は上から私の機能を使用して画像をダウンロードする際に、しかし Image viewed from app

、背景画像が引き伸ばさルックスとtopImage /鳥が正しい位置にありません: これは、画像は私のアプリでどのように見えるかですDownloaded image

誰でもこのタスクを達成するための簡単な方法や、上から自分のコードをどのように変更する必要があるかについてのアドバイスはありますか?私はここに誰かを読んで、UIImageViewsを自分のビューに入れることを提案しましたが、それは非常に扱いにくいものでした。...

答えて

0

問題は、あなたのイメージビューで実際に表示されます。画像が画像ビューに表示されているものと一致するように必要な変換を適用するか、怠惰で画面上の画像をキャプチャするだけですsnapshotView(afterScreenUpdates:)

関連する問題