我需要帮助编写一个将会占用UI
Images / PNG数组的objective-c函数,并且按照垂直顺序返回/保存缝合在一起的所有图像的一个高图像.我是新来的,所以请慢走,轻松一点:)
我的想法到目前为止
绘制一个UIView,然后添加到每个人的父母(图像)
接着 ???
解决方法
通常的方法是创建位图图像上下文,将图像绘制在所需位置,然后从图像上下文中获取图像.
你可以使用UIKit来做到这一点,这更容易一些,但不是线程安全的,所以需要在主线程中运行并阻止UI.
这里有很多示例代码,但如果你想要正确的理解,你应该看看UIGraphicsContextBeginImageContext,UIGraphicsGetCurrentContext,UIGraphicsGetImageFromCurrentImageContext和UIImageDrawInRect.别忘了UIGraphicsPopCurrentContext.
您也可以使用Core Graphics,这是AFAIK,可以安全地在后台线程上使用(我还没有发生崩溃).效率大致相同,因为UIKit只是使用CG.
关键词是CGBitmapContextCreate,CGContextDrawImage,CGBitmapContextCreateImage,CGContextTranslateCTM,CGContextScaleCTM和CGContextRelease(Core Graphics中没有ARC).缩放和翻译是因为CG的起点位于右下角,Y上升.
还有第三种方法是使用CG作为上下文,但是通过使用CALayer来保存所有的协调的痛苦,将您的CGImage(UIImage.CGImage)设置为内容,然后将图层渲染为上下文.这仍然是线程安全的,让层来处理所有的转换.这个关键字是 – renderInContext: