gpt4 book ai didi

iOS:在 drawRect 中绘制 RGBA 数据而不事先转换为 UIImage

转载 作者:行者123 更新时间:2023-11-28 22:16:01 25 4
gpt4 key购买 nike

我有一张图像存储在 RGBA 缓冲区中。现在我想在 UIView 的 drawRect 方法中绘制这些数据:

- (void)drawRect:(CGRect)rect
{
// draw RGBA here
}

一种方法是将数据复制到 UIImage(在 drawRect 方法之外)并绘制此 UIImage。有没有一种方法可以直接绘制数据而无需在 UIImage 中制作另一个副本?

问候,

最佳答案

为此目的使用 UIView 的 drawrect 函数会非常慢。任何时候你为 View 设置动画,移动它,在它上面移动其他东西或者任何它必须重绘的东西(缓慢的过程)。 UIImageView 针对此任务进行了优化,使用它会很有帮助。

但是如果您对 drawrect 死心塌地,那么您将不得不通过将 UIView 的宽度和高度除以图像的宽度和高度(以像素为单位)来创建“像素”矩形。然后遍历每个像素行和列并使用 CGContextSetFillColorCGContextFillRect。将颜色数组排序为相似的颜色并同时绘制相同的颜色可能对性能有意义。但是还是比 UIImageView 慢很多。拥有数组和 UIImageView 的内存重叠还不足以抵消其好处。

关于iOS:在 drawRect 中绘制 RGBA 数据而不事先转换为 UIImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21660179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com