相关疑难解决方法(0)

如何从 UIView 创建特定尺寸的图像

我正在开发 iOS 应用程序,该应用程序应该使用户能够创建 Instagram 故事照片并将其导出到 Instagram。基本上像 Unfold、Stellar、Chroma Stories 这样的应用程序...我已经准备好了 UI,用户可以从准备好的模板中进行选择,并向其中添加带有滤镜、标签等的自己的照片。

我的问题是 -将创建的 UIView 导出到更大图像的最佳方法是什么? 我的意思是如何获得最佳质量、清晰的标签像素等?因为带有子视图(添加的照片、标签...)的模板视图占据了设备屏幕的+-一半。但我需要更大的尺寸来导出图像。目前我使用:

 func makeImageFromView() -> UIImage {
    let format = UIGraphicsImageRendererFormat()
    let size = CGSize(width: 1080 / format.scale, height: 1920 / format.scale)

    let renderer = UIGraphicsImageRenderer(size: size, format: format)
    let image = renderer.image { (ctx) in
        templateView.drawHierarchy(in: CGRect(origin: .zero, size: size), afterScreenUpdates: true)
    }
    return image
}
Run Code Online (Sandbox Code Playgroud)

生成的图像尺寸为 1080 x 1920,但标签不清晰。在将其制作为图像之前,我是否需要以某种方式缩放照片和字体大小?谢谢!

uiview uiimage ios swift uigraphicsimagerenderer

3
推荐指数
1
解决办法
1723
查看次数

标签 统计

ios ×1

swift ×1

uigraphicsimagerenderer ×1

uiimage ×1

uiview ×1