特定宽高比的帧和图像

时间:2017-09-02 05:47:08

标签: ios swift3 uiimage frame core-image

我使用下面的代码

创建了空灰色UIImage
let size = CGSize(width: 212, height: 332)

UIGraphicsBeginImageContextWithOptions(size, true, 0)
UIColor.gray.setFill()
UIRectFill(CGRect(x: 0, y: 0, width: size.width, height: size.height))
let backgroundImage2: UIImage? = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()

显示输出为 enter image description here

现在我需要将UIImage放在这个UIImage的特定区域。如下图所示。说顶部,左侧,右侧应该是30像素,并且底部多于200像素。保持内部图像宽高比。

enter image description here

1 个答案:

答案 0 :(得分:0)

使用两个图片视图(UIImageViewGLKView),使“图片”成为“灰色背景”视图的子视图。正确定位“图像”后,将两个图像合并为一个。

以下是我使用的UIView的扩展名:

extension UIView {
    public func createImage() -> UIImage {
        UIGraphicsBeginImageContextWithOptions(
            CGSize(width: self.frame.width, height: self.frame.height), true, 1)
        self.layer.render(in: UIGraphicsGetCurrentContext()!)
        let image = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        return image!
    }
}