我正在尝试合并2张图片,而不会丢失原始图片的大小。
我有一个大的白色图像,我想将一个较小的图像合并到其上。如果我移动较小的图像,以便仅将其显示在较大的图像上,则在合并两个图像时,仅应合并显示的图像的一半,并剪裁另一侧。
下图的层次结构
UIView:剪辑子视图已选中
---->带有白色图像的UIImageView
----> UIImageView:此图像具有平移手势,可以在视图内移动。
我找到了merge two different images swift这个帖子,并试图掩盖图像
let maskedImage: UIImage = self.maskImage(imageView.image!, withMask: whiteImage.image!)
newImageView.image = maskedImage
但这并未考虑图像在图像视图中的当前位置。它只是返回原始图像(然后调整大小以适合UIIMageView,这就是为什么它比以前大一些的原因)
有谁知道我如何合并两个图像并在合并时考虑它们的位置?理想情况下,第二张图片看起来与第一张图片完全一样,只是它是单个图片而不是两个。
最佳答案
一种合理的技术可以使您获得理想的结果是
我喜欢在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
}
}
一旦您的图像(作为子视图)包含在单个视图中,就可以了。
let mergedImage = containerUIView.capture()
关于ios - 在Swift中合并2张图片而不会丢失原始图片的大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34893913/