jos*_*111 1 merge image uiimage ios swift
我正在尝试合并2张图像而不会丢失原始图像的大小.我有一个大的白色图像,我想将一个较小的图像合并到它上面.如果我移动较小的图像以便只有较大的图像显示在较大的图像上,那么当我合并2个图像时,只显示正在显示的图像的一半,并且应该裁剪另一边.
下图的层次结构
UIView:检查剪辑子视图
---->带有白色图像的UIImageView
----> UIImageView:此图像有一个平移手势,允许它在视图中移动.
我发现这篇文章合并了两个不同的图像,并试图掩盖图像
let maskedImage: UIImage = self.maskImage(imageView.image!, withMask: whiteImage.image!)
newImageView.image = maskedImage
Run Code Online (Sandbox Code Playgroud)
但这并未考虑图像视图中的图像当前位置.它只返回原始图像(然后调整大小以适应UIIMageView,这就是它比以前更大的原因)
有谁知道如何合并2张图片并考虑他们在合并时的位置?理想情况下,第二个图像看起来与第一个图像完全相同,只不过它是单个图像而不是两个图像.
一种合理的技术可以给你一个理想的结果
我喜欢在UIView上创建扩展,它会对图像进行快照(如果你愿意,可以拍摄一个屏幕截图).从而:-
import UIKit
extension UIView {
func capture() -> UIImage {
UIGraphicsBeginImageContextWithOptions(self.frame.size, self.opaque, UIScreen.mainScreen().scale)
self.layer.renderInContext(UIGraphicsGetCurrentContext()!)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return image
}
}
Run Code Online (Sandbox Code Playgroud)
一旦您的图像(作为子视图)包含在单个视图中,您就可以.
let mergedImage = containerUIView.capture()
Run Code Online (Sandbox Code Playgroud)