我有多个大小的帧,可以硬编码,或者服务器来决定。我必须选择图片画廊,这肯定可以是多个维度。
现在,我想要做另一个图像,它保持领先的20像素,前20像素,宽度和高度比原始背景小20像素。
我怎样才能做到这一点。
我来StackOverflow之前试过的东西。
func mergedImageWith(frontImage:UIImage?, backgroundImage: UIImage?) -> UIImage{
if (backgroundImage == nil) {
return frontImage!
}
let size = CGSize(width: 424/2, height: 664/2)
UIGraphicsBeginImageContextWithOptions(size, true, 0)
UIColor.white.setFill()
UIRectFill(CGRect(x: 0, y: 0, width: size.width, height: size.height))
let backgroundImage2: UIImage? = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
UIGraphicsBeginImageContextWithOptions(size, false, 0.0)
backgroundImage2?.draw(in: CGRect.init(x: 0, y: 0, width: size.width, height: size.height))
frontImage?.draw(in: getAspectFillFrame(sizeImageView: size2, sizeImage: (frontImage?.size)!))
let newImage:UIImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
return newImage
}这里的背景图像与侧面填充,但问题是开始的位置和完整的高度和宽度。
用非常简单的话说。这就像制作定制的框架,并将它们与图像(方面填充)合并以供打印。
有人能帮我吗?
谢谢。
发布于 2017-09-01 14:14:33
尽量不要结束您的图像上下文,直到所有的图像绘制(我还包括一些代码,我已经工作,编辑了一点)
class layeredImageView: UIImageView {
var imageBackground:UIImage!
var imageForeground:UIImage!
UIGraphicsBeginImageContextWithOptions(self.frame.size, false, UIScreen.main.scale)
self.image?.draw(in: self.frame)
imageBackground.draw(in: CGRect(<rect>)
imageForeground.draw(in: CGRect(<rect>)
self.image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
}https://stackoverflow.com/questions/46001900
复制相似问题