【问题标题】:Effectively scaling multiple images in iOS在 iOS 中有效缩放多个图像
【发布时间】:2013-01-23 22:12:47
【问题描述】:

我在一个视图中显示了 15 张图像。我需要根据用户的声音来缩放图像(他们说话的声音越大,需要缩放的图像就越大)。目前我在 AVAudioRecorder 上使用 averagePowerForChannel 并经常对音频进行采样以适当地缩放所有图像。我用来进行缩放的代码如下所示:

- (void)scaleImages:(float)scalingFactor {
    for (UIView *imageHolder in self.imageView.subviews) {
        UIView *image = [imageHolder.subviews objectAtIndex:0];
        image.transform = CGAffineTransformMakeScale(scalingFactor, scalingFactor);
        image.hidden = scalingFactor <= 0.0f;
    }
}

当我只有一张图片时,这很好用,但是当我对所有 15 张图片执行此操作时,它变得非常滞后且无响应。我尝试了几种不同的选项 - 减少采样频率、标准化采样输出等,但似乎没有任何区别。

我将如何优化它?

【问题讨论】:

  • 最好的性能来自于将所有图像绘制成单个图像(或 OpenGL 纹理,或...)然后对其进行缩放。不过,这种情况可能并不多。

标签: ios objective-c ipad core-graphics


【解决方案1】:

您可能想尝试 GPUImage 框架。它使用 GPU 来加速 Core Image 转换。

https://github.com/BradLarson/GPUImage

【讨论】:

  • 作为一个小问题,GPUImage 和 Core Image 是独立的框架。它们都做许多相同的事情,但两者都没有在另一个内部使用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-11
  • 1970-01-01
  • 1970-01-01
  • 2013-12-29
相关资源
最近更新 更多