【问题标题】:How to add Fish eye Image Filter on UIImage in iOS without using GPUImage如何在不使用 GPUImage 的情况下在 iOS 中的 UIImage 上添加鱼眼图像过滤器
【发布时间】:2012-12-14 21:23:10
【问题描述】:

我想在我的 iPhone 应用程序中为 UIImage 添加一些滤镜效果。这些过滤器是: 1.鱼眼滤镜效果。 2. 结晶图像效果(与六边形中的马赛克效果瓷砖相同) 3. 电视图像过滤器。

我已经做了很多谷歌搜索并搜索了很多关于这些过滤器的内容,我得到了使用 GPUImage 效果的最大结果。我使用它,但存在 Cocoas2d 和 GPUImage 冲突的问题。在我的项目中,我已经使用了 cocoas 2d。所以我不能使用GPUImage,请不要建议使用GPUImage。

我想以其他方式实现这些过滤器。但我对此一无所知。

我已经使用 C 代码实现了许多滤镜,例如饱和度、模糊、棕褐色、阈值、锐度等等。 但是使用了这 3 个滤镜(Fisheye、Crystalizem TV)

【问题讨论】:

  • “但存在 Cocoas2d 和 GPUImage 冲突的问题” - 具体来说?为什么不尝试解决冲突呢?
  • 你在 ios 6 上吗?您可以使用此版本的 iOS 实现更多图像过滤器,否则我将解决 H2CO3 提到的问题
  • @tiguero 我不在 iOS 6 上,我知道 iOS6 中有很多可用的过滤器,但我的应用也支持 iOS4。
  • @H2CO3:无法解决冲突问题,我尝试了很多方法。就像 cocoas2d 用来在 Image 上添加树桩一样,它可以正常工作,但是如果我应用 GPUImage 框架使用的滤镜效果,则会在 cocoas2d 视图上创建一个新图层,然后树桩在 cocoas2d 视图上不起作用

标签: iphone objective-c c image-processing


【解决方案1】:

也许您应该发布“解决 GPUImage 和 cocoas2d 问题”。

此外,您还可以完美地使用 GPUImage 将原始 UIImage 转换为过滤后的 UIImage,而不受层、视图或任何 UI 的影响。

来自 GitHub:

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

GPUImagePicture *stillImageSource = [[GPUImagePicture alloc] initWithImage:inputImage];
GPUImageSepiaFilter *stillImageFilter = [[GPUImageSepiaFilter alloc] init];

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

UIImage *currentFilteredVideoFrame = [stillImageFilter imageFromCurrentlyProcessedOutput];

在这种情况下 inputImage 和 currentFilteredVideoFrame 对于 cocoas2d 应该是不可识别的。

【讨论】:

  • thanx @ernipiggy: 但我已经使用 ImageMagick 实现了这个
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-03
  • 1970-01-01
  • 1970-01-01
  • 2016-10-14
相关资源
最近更新 更多