我有一些.learn {
margin-bottom: 1rem;
}
和UIImageViews
可以在编辑器中拖动屏幕。
这些图像具有非常高的分辨率(> 2400px),但在屏幕上它们可能看起来更小。
我想从该屏幕生成一个png文件(包括某些位置的标签和图像),这将保留这些图像的实际尺寸(> 2400px)。
如果我只是以编程方式捕捉屏幕(渲染),他将生成一个屏幕大小的图像,它将不会透明。
如何通过放置我想要的任何大小和位置的图像和文本来自己构建png文件?
例如:
UILabels
不允许您指定位置或将多个图像和文本添加到文件
答案 0 :(得分:0)
找到一种非常简单和甜蜜的方式,首先将所有屏幕元素保存在字典中,然后只需将它们添加到文件中:
let font = UIFont.boldSystemFont(ofSize: 160)
let showText:NSString = "hello world"
// setting attr: font name, color...etc.
let attr = [NSFontAttributeName: font, NSForegroundColorAttributeName:UIColor.blue]
// getting size
let sizeOfText = showText.size(attributes: attr)
let image = UIImage(named: "image.png")
let rect = CGRect(x: 0, y: 0, width: image!.size.width,height: image!.size.height)
UIGraphicsBeginImageContextWithOptions(CGSize(width: rect.size.width, height: rect.size.height), false, 0)
// drawing our image to the graphics context
image?.draw(in: rect)
// drawing text
showText.draw(in: CGRect(x: rect.size.width/2.0, y: rect.size.height/2.0, width: rect.size.width, height: rect.size.height), withAttributes: attr)
// getting an image from it
let newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext()