gpt4 book ai didi

ios - 在 UIView 中逐像素绘制像素

转载 作者:行者123 更新时间:2023-11-28 05:29:18 31 4
gpt4 key购买 nike

我正在尝试创建一个简单的软件渲染引擎。因此,我正在寻找逐像素绘制 UIView 的最高效方法。

这是我试过的:

  • 使用drawRect:绘制
  • 使用 CGBitmapContextCreate 创建一个 CGContext 并手动绘制它

这两个都给了我糟糕的帧率,大约 15 fps。

有人知道以更高效的方式逐像素绘制的方法吗?

最佳答案

尝试将 UIImageView 添加为 View 的 subview ,并使用 drawRect 之外的渲染图像设置它的图像属性:

- (void)renderImageInRect:(CGRect)rect {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
UIGraphicsBeginImageContext(rect);
//draw...
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
dispatch_async(dispatch_get_main_queue(), ^{
self.imageView.image = image;
});
UIGraphicsEndImageContext();
}
}

另一种解决方案是像 GPUImage 中那样使用 OpenGL ES

编辑:另一种基于 CALayer 的解决方案,没有 UIImageView subview 。

只需更改代码行:

self.imageView.image = image;

与:

self.layer.contents = (id) image.CGImage;

关于ios - 在 UIView 中逐像素绘制像素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29566731/

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