如何使用此功能将两个uiimageviews保存在一起(swift 3)

时间:2017-02-26 17:52:44

标签: ios swift graphics swift3 uiimageview

有人给了我以下功能

func saveImage(image1:UIImage, image2:UIImage) -> UIImage {

let size1 = image1.size
let size2 = image2.size

let origin = CGPoint(x: size1.width-size2.width, y: size1.height - size2.height)

UIGraphicsBeginImageContextWithOptions(size1, false, 0.0)

image1.draw(in: CGRect(origin: CGPoint.zero, size: size1))
image2.draw(in: CGRect(origin: origin, size: size2))

let newImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return newImage!}

这个人说它将保存到图像视图,同时图像视图1被打印在小右手部分的图像视图2上。问题是我不知道如何用我有的代码调用这个函数。

import UIKit

 class ViewController: UIViewController {

var image1 = UIImage(named: "hat.jpg")
var image2 = UIImage(named: "cat.jpg")

 override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a  nib.
  }


 @IBAction func TakePhoto(_ sender: Any) {
  }}

我试图将我的两个图像视图保存为这样忽略按钮。我只是想让它看起来像你在cnn上看到的更低的3rds。

1 个答案:

答案 0 :(得分:0)

你没有提供太多信息,但我会捅它。

假设您要显示的两个图像是image1类中的属性image2(hat.jpg)和ViewController(cat.jpg)。< / p>

让我们进一步假设函数saveImage位于ViewController类中。

让我们进一步假设您希望执行此任务的时间点是在调用TakePhoto时。

让我们进一步假设您知道如何处理最终图像。

如果这些都是真的,那么:

 @IBAction func TakePhoto(_ sender: Any)
 {
     let newImage = saveImage(image1: image1, image2: image2)
     // Do something with 'newImage'
 }

关于提供给您的saveImage功能的快速说明:image2将与image1的右下角对齐(并覆盖在其上)。如果image2(cat.jpg)大于image1(hat.jpg),那么你的猫将不会戴帽子,而是完全覆盖帽子。在任一方向(宽度或高度或两者)都可以是这种情况。

确保您的两张图片(猫/帽)彼此按比例调整大小。