사용자가 다른 이미지 위에 오버레이 할 수있는 iOS 앱을 만들고 있습니다. 사용자는 imageView라는 UIImageView에 저장 될 배경 이미지를 선택할 수 있습니다. 그런 다음 사용자는 해당 이미지 위에 오버레이 될 이미지를 결정할 수 있으며이 이미지는 imageTwo라는 UIImageView에 저장됩니다. 그런 다음 사용자가 imageTwo를 이동하고 크기를 조정할 수 있습니다. 그러나 나는 그 이미지 뷰를 하나의 이미지로 합쳐서 다운로드 할 수 있어야한다.서로 다른 크기의 두 UIImageViews 병합
저는 현재 이미지를 다운로드하려고 아래의 기능을 사용하고 있습니다 :
@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를 자신의 View에 넣으라고 제안했으나 꽤 까다로운 것으로 판명되었습니다 ...