从多个图像和标签构造png文件

时间:2017-07-09 12:28:23

标签: ios swift

我有一些.learn { margin-bottom: 1rem; } UIImageViews可以在编辑器中拖动屏幕。 这些图像具有非常高的分辨率(> 2400px),但在屏幕上它们可能看起来更小

我想从该屏幕生成一个png文件(包括某些位置的标签和图像),这将保留这些图像的实际尺寸(> 2400px)。

如果我只是以编程方式捕捉屏幕(渲染),他将生成一个屏幕大小的图像,它将不会透明。

如何通过放置我想要的任何大小和位置的图像和文本来自己构建png文件?

例如:

UILabels

允许您指定位置或将多个图像和文本添加到文件

1 个答案:

答案 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()