从 Swift 中的两个 imageView 获取图像

Get an image from two imageViews in Swift

我正在开发一个应用程序,其中有一个区域,其中有一个图像在背景中,另一个我可以移动的图像,如贴纸。

我的目标是使用 Swift 创建并保存包含背景图像和上面的 "sticker" 的图像。这是我的功能,它允许我做我想做的事(我的背景视图称为 "imageView",我的图像视图标签称为 "jacques"):

    let newSize = CGSizeMake(imageView.image!.size.width, imageView.image!.size.height)

    UIGraphicsBeginImageContextWithOptions(newSize, false, 0.0);

    imageView.image!.drawInRect(CGRectMake(0,0,newSize.width,newSize.height))

    let jacquesX = ((jacques.frame.origin.x - imageView.frame.origin.x) * (imageView.image?.size.width)!) / UIScreen.mainScreen().bounds.width
    let jacquesY = ((jacques.frame.origin.y - imageView.frame.origin.y) * (imageView.image?.size.height)!) / UIScreen.mainScreen().bounds.height
    let jacquesWidth: CGFloat = jacques.image!.size.width
    let jacquesHeight: CGFloat = jacques.image!.size.height       
    jacques.image!.drawInRect(CGRectMake(jacquesX, jacquesY, jacquesWidth, jacquesHeight))

    let newImage: UIImage = UIGraphicsGetImageFromCurrentImageContext()

    UIGraphicsEndImageContext()

    UIImageWriteToSavedPhotosAlbum(newImage, self, "image:didFinishSavingWithError:contextInfo:", nil)

很遗憾,我的贴纸尺寸不合适。我认为它在图像中的位置很好,但它的尺寸太小了。我不知道我的解决方案是否是最好的,我愿意接受所有建议。我是新手,所以如果您有好的做法可以分享,我洗耳恭听:)

您可以在情节提要中执行此操作。首先,您可以根据需要调整图片的大小。要创建贴纸效果,您只需添加 imageView,将其调整为背景大小,然后将 jacques 放在故事板上,最后调整它们的大小。