我想制作一个应用程序,让您拍照,然后从一组预制的"图片中选择"因为你将在那张照片上面申请。
例如,你拍了一张某人的照片,然后用一根芥子,一只鸡和假嘴唇。
应用示例是Aokify app。
然而,搜索互联网的各个角落,但无法找到一个能指出正确方向的例子。
答案 0 :(得分:2)
另一个更简单的实现可能是使用UIImageView作为父视图,然后将UIImageView添加为您希望覆盖在原始图像上的任何图像的子视图。
let mainImage = UIImage(named:"main-pic")
let overlayImage = UIImage(named:"overlay")
var mainImageView = UIImageView(image:mainImage)
var overlayImageView = UIImageView(image:overlayImage)
self.view.addSubview(mainImageView)
mainImageview.addSubview(overlayImageView)
编辑:由于这已成为公认的答案,我觉得值得一提的是,定位overlayImageView还有不同的选项:您可以在添加第一个视图后将叠加添加到同一个父级,或者您可以将叠加层添加为主imageView的子视图,如示例所示。
区别在于设置叠加帧的坐标时的参照系:是否希望它们具有相同的坐标空间,或者您是否希望叠加坐标相对于主图像而不是父图像。 / p>
答案 1 :(得分:2)
为了正确回答问题并满足要求,您需要添加选项,以便根据原始图像移动并将叠加图像放置在适当的位置,但在另一张图像上添加一张图像的代码将是以下一种 -
Swift3
extension UIImage {
func overlayed(with overlay: UIImage) -> UIImage? {
defer {
UIGraphicsEndImageContext()
}
UIGraphicsBeginImageContextWithOptions(size, false, scale)
self.draw(in: CGRect(origin: CGPoint.zero, size: size))
overlay.draw(in: CGRect(origin: CGPoint.zero, size: size))
if let image = UIGraphicsGetImageFromCurrentImageContext() {
return image
}
return nil
}
}
使用 -
image.overlayed(with: overlayImage)
也可用here as a gist。
该代码最初用于回答this question。
答案 2 :(得分:0)
感谢jesses.co.tt提供我需要的提示。
该方法称为UIGraphicsContext。
我终于找到了这个教程:https://www.youtube.com/watch?v=m1QnT72I6f0它来自新波士顿。