ios - 将核心图像过滤器 (CIBumpDistortion) 仅应用于图像的一部分 + 更改选择半径和 CIFilter 的强度

标签 ios objective-c swift core-image cifilter

我想复制这里显示的一些特征:

Screenshot of an app

所以我希望用户对图像应用 CIBumpDistortion 滤镜并让他选择

1) 通过让他触摸图像上的相应位置,让他准确地应用它

2a) 圆选择的大小(上图中的第一个 slider )

2b) CIBumpDistortion 过滤器的强度(上图中的第二个 slider )

我阅读了一些以前提出的问题,但它们并没有真正帮助,而且一些解决方案听起来对用户来说真的很不友好(例如,裁剪需要的部分,然后将其重新应用到旧图像)。希望我不要一次要求太多。首选 Objective-C,但我们将不胜感激任何帮助/提示!提前致谢!

最佳答案

我编写了一个演示 (iPad) 项目,可让您应用大多数受支持的 CIFilters。它会询问每个过滤器所需的参数,并内置对浮点值以及点和颜色的支持。对于凹凸失真滤镜,您可以选择中心点、半径和输入比例。

该项目称为 CIFilterTest。您可以通过以下链接从 Github 下载该项目:https://github.com/DuncanMC/CIFilterTest

应用程序中有相当多的内务管理来支持使用任何受支持的过滤器的通用功能,但它应该为您提供足够的信息以按照您的要求实现您自己的凹凸过滤器。

我想出的应用滤镜并使其在不超出原始图像边界的情况下进行渲染的方法是首先对图像应用钳位滤镜 (CIAffineClamp)恒等变换,获取该过滤器的输出并将其输入到“目标”过滤器(在本例中为凹凸失真过滤器)的输入中,然后获取该过滤器的输出并将其输入裁剪过滤器(CICrop) 并将裁剪过滤器的边界设置为原始图像大小。

示例工程中要查找的方法叫做showImage,在ViewController.m

关于ios - 将核心图像过滤器 (CIBumpDistortion) 仅应用于图像的一部分 + 更改选择半径和 CIFilter 的强度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38555905/

相关文章:

ios - 从 iOS 中的字符串中删除毫秒

swift - 矛盾的协议(protocol)一致性

objective-c - 由于 FBSDKCoreKit 位码错误,FacebookCore 无法链接

ios - MKPolygonRenderer 不填充多边形(大部分时间)

java - 多种语言的随机数

ios - UIApplication 没有成员共享

ios - 在 Objective-C 中创建方波、锯齿波和三角波

ios - 获取 ALAsset 的 MIME 类型

ios - 当没有文本时,textView.text 属性不为 nil

ios - 隐藏标签栏容器 View