gpt4 book ai didi

objective-c - 如何在应用程序中应用晕影和复古图像滤镜

转载 作者:可可西里 更新时间:2023-10-31 23:58:17 30 4
gpt4 key购买 nike

我想在我的图像上应用晕影和复古图像滤镜。

我关注了this sample code .

我已经集成了黑白和棕褐色滤镜。此代码还提供了晕影图像滤镜,但它处理速度非常慢,并且在应用此滤镜时应用程序会因一些小图像而崩溃。

请建议我如何实现小插图和复古图像过滤器。任何建议将不胜感激。提前致谢!

最佳答案

您可以使用 GPUImage 轻松做到这一点及其 GPUImageSepiaFilter 和 GPUImageVignetteFilter:

Sepia and vignette filtered image

上面的图片是用下面的代码生成的:

UIImage *inputImage = [UIImage imageNamed:@"Lambeau.jpg"];

GPUImagePicture *stillImageSource = [[GPUImagePicture alloc] initWithImage:inputImage];
GPUImageSepiaFilter *stillImageFilter = [[GPUImageSepiaFilter alloc] init];
GPUImageVignetteFilter *vignetteImageFilter = [[GPUImageVignetteFilter alloc] init];
vignetteImageFilter.vignetteEnd = 0.6;
vignetteImageFilter.vignetteStart = 0.4;

[stillImageSource addTarget:stillImageFilter];
[stillImageFilter addTarget:vignetteImageFilter];
[stillImageSource processImage];

UIImage *filteredImage = [vignetteImageFilter imageFromCurrentlyProcessedOutput];

还有一个 GPUImageGrayscaleFilter,如果你想对源图像应用灰度滤镜。

正如框架名称所示,这都是 GPU 加速的,因此它比任何受 CPU 限制的图像处理例程都要快得多。事实上,您可以将上述过滤器应用于实时视频。对于 640x480 视频帧,iPhone 4 可以在约 2 毫秒内运行此过滤器。由于往返 UIImages 时需要通过 Core Graphics 进行往返,因此静态图像稍微慢一些,但这仍然比 CPU 绑定(bind)过滤器快 6 倍。

当前实现的一个警告是非 A5 设备(iPhone 3G S、iPhone 4、iPad 1)的纹理大小限制为 2048x2048,因此我目前无法过滤大于此尺寸的图像。我正在研究克服此限制的方法,但与此同时,您可能需要在处理之前缩小图像以适应此分辨率限制。

关于objective-c - 如何在应用程序中应用晕影和复古图像滤镜,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9158629/

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