gpt4 book ai didi

ios - 如何使用静态图像源获得 GPUImage 动画?

转载 作者:行者123 更新时间:2023-11-29 03:44:35 24 4
gpt4 key购买 nike

我尝试在 UIViewControler 中设置一个简单的 GPUImage 环境。但是,我得到一个空白屏幕。我想为旋流过滤器的属性设置动画,同时源图像保持不变。我怎样才能做到这一点?

我希望大型图像具有良好的性能(> 30 fps),因此最好避免从 GPU 到 CPU 之间不必要的像素复制。

- (void)viewDidLoad
{
UIImage *inputImage = [UIImage imageNamed:@"image.jpg"];

self.stillImageSource = [[GPUImagePicture alloc] initWithImage:inputImage];
self.swirlFilter = [[GPUImageSwirlFilter alloc] init];
self.swirlFilter.radius = 0.8;

self.filteredImageView =
[[GPUImageView alloc] initWithFrame:
CGRectMake(0.0, 0.0,
self.view.frame.size.width,
self.view.frame.size.height)];

[self.view addSubview:self.filteredImageView];

// GPUImagePicture -> GPUImageFilter -> GPUImageView
[self.stillImageSource addTarget:self.swirlFilter];
[self.swirlFilter addTarget:self.filteredImageView];

NSAssert(inputImage && _stillImageSource && _swirlFilter && _filteredImageView,
@"Something unexpected is nil");
}

// Set up a the display link in View Did appear

- (void) displayLinkDidFire:(CADisplayLink*)displayLink
{
CGFloat proportion =
[RSHelper proportionForTime:[[NSDate date] timeIntervalSinceReferenceDate]];

self.swirlFilter.angle = proportion;

// Do I need to call some kind of update call here?
}

最佳答案

好的,我找到了答案 - 我只是错过了对 GPUImagePicture 上的 processImage 的调用

- (void) displayLinkDidFire:(CADisplayLink*)displayLink
{
self.swirlFilter.angle = [Helper calcProportion];
[self.stillImageSource processImage];
}

GPUImage 实际上设置起来非常好,而且它似乎比 CoreImage 更快,正如 GPUImage docs 中所述。 .使用第三方库而不是某些苹果的技术让我很痛苦,但我没有看到任何优势或 CoreImage。

关于ios - 如何使用静态图像源获得 GPUImage 动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17910990/

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