【发布时间】:2014-08-20 09:23:03
【问题描述】:
我有一些图像,我希望在我的 UIControl 中绘制它。但是为了提高性能,我需要在图形上下文中进行绘制。
现在我可以使用类似的东西了:
var imageRect1 = CGRectMake(0, 0, width, height)
var imageRect2 = CGRectMake(x2, y2, width, height)
...
CGContextDrawImage(ctx, imageRect1, image)
CGContextDrawImage(ctx, imageRect2, image)
...
但是这个解决方案意味着我们至少在每次调用该上下文函数时读取image。
我搜索了一些适用于某些步骤的解决方案,例如下一个(如果我错了,请随时纠正我):
//read image into some bitmap or maybe some byte array
//paste it several times in different places (several times means ~500 times)
也许我必须逐像素复制?谁能给我一些建议如何快速做到这一点?
【问题讨论】:
-
你想归档什么?如果您想绘制图案/平铺图像,有更好的方法使用
[UIColor colorWithPatternImage:]或CGContextDrawTiledImage。如果您需要直接控制每张图片的显示位置,您可以使用CGLayer。 -
想象一下我有一些东西like that 我需要插入 500 次图像。所以我试图找到一些不读取图像 500 次的方法。也许读取我的图像位图数组中的第一个像素并将其分配在结果位图数组中的 500 位置?我不知道我应该使用哪种方式来获得一些有价值的性能,我应该怎么做..
-
您也可以使用
drawInRect或drawAtPoint方法,然后从当前上下文中获取图像。 -
@VitaliyLevytskyy:出于好奇,您最终是如何解决这个问题的?
标签: ios graphics core-graphics