一个 CIImage 中有多个 CIFilter?

2024-01-09

我有两个 CIFilter,曝光和色调。我需要将过滤器组合到一个 UIImage 上。我该怎么办?下面是我到目前为止所拥有的一些代码......

CIFilter *hueFilter;
CIFilter *exposureFilter;
CIImage *adjustedImage;

hueFilter = [CIFilter filterWithName:@"CIHueAdjust"];
exposureFilter = [CIFilter filterWithName:@"CIExposureAdjust"];
[hueFilter setValue:[NSNumber numberWithFloat:5] forKey: @"inputAngle"];
[exposureFilter setValue:[NSNumber numberWithFloat:5] forKey: @"inputEV"];

adjustedImage = [CIImage imageWithCGImage:inputCGImage];
[hueFilter setValue:adjustedImage forKey:@"inputImage"];
[exposureFilter setValue:adjustedImage forKey:@"inputImage"];

核心图像过滤器可以一个接一个地链接在一起。我发现如果按照这个想法编写代码,代码会更容易阅读(和编写)。

CIFilter *hueFilter;
CIFilter *exposureFilter;
CIImage *inputImage; // assume this has already been created
CIImage *outputImage;

hueFilter = [CIFilter filterWithName:@"CIHueAdjust"];
[hueFilter setValue:inputImage forKey:kCIInputImageKey];
[hueFilter setValue:[NSNumber numberWithFloat:5] forKey:@"inputAngle"];
outputImage = [hueFilter valueForKey:kCIOutputImageKey];

exposureFilter = [CIFilter filterWithName:@"CIExposureAdjust"];
[exposureFilter setValue:outputImage forKey:kCIInputImageKey];
[exposureFilter setValue:[NSNumber numberWithFloat:5] forKey:@"inputEV"];
outputImage = [exposureFilter valueForKey:kCIOutputImageKey];

上面创建了第一个过滤器。请注意可用的键常量的使用。在块的末尾,已为图像设置了过滤器,但直到渲染图像后才实际执行计算。应用的任何新过滤器都将被组合起来以实现最有效的操作。

然后,下一个块应用下一个过滤器,使用第一个过滤器的输出作为第二个过滤器的输入。这可以根据需要重复多次。通过编写上述代码,您可以根据需要轻松打开/关闭过滤器,甚至可以对它们重新排序(如果有多个过滤器)。

苹果的文档非常好,有很多例子:核心映像编程指南 https://developer.apple.com/library/ios/documentation/graphicsimaging/Conceptual/CoreImaging/ci_tasks/ci_tasks.html.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一个 CIImage 中有多个 CIFilter? 的相关文章

  • Swift - 我可能已经删除了 Apple Swift Packages 集合

    我对 swift 和 XCode 很陌生 昨天我正在开发一个项目 想尝试一下某人制作的自定义日期选择器 所以我转到 添加包 并粘贴 GitHub 链接并添加它 我已经在我的项目中添加了一个名为 KeychainAccess 的不同包 方式
  • 在 Swift 中有条件导入基于 iOS 版本的框架(如 Speech)?

    有没有办法有条件地导入框架Swift基于运行时 iOS 版本 特别是 我有一个部署目标为的应用程序iOS 8 我想使用新的Apple Speech应用程序中的框架 如果在运行时可用 我知道 available iOS 10 代码部分的指令
  • UICollectionViewCell 拖动预览的自定义视图

    我正在尝试实现一项功能 用户可以将一个集合视图单元格拖放到另一个集合视图单元格上 但是 我想完全更改运动中物体的预览 以匹配我的应用程序的视觉隐喻 该项目没有移动 该项目包含的东西正在移动 例如 假设我的collectionview单元格显
  • iPhone 核心数据:无法找到 NSManagedObjectModel

    我使用 Apple 的 CoreDataBooks 示例项目作为核心数据的学习辅助工具 我修改了应用程序 以便在加载应用程序时我首先显示菜单页面 而不是图书表视图 RootViewController 我做了以下事情 我在界面生成器中创建了
  • iOS9 Sprite 套件问题

    一切都很顺利 直到我升级到 xCode 7 和 iOS 9 我当前的项目是一个 2D 平台游戏 自从升级以来 我就陷入了我们许多人似乎都面临的精灵套件错误 错误的困扰 我的问题是 每次游戏在模拟器或设备上运行时 所有精灵的 zPositio
  • 为什么我需要 2 个或更多核心数据模型?

    我很想知道谁使用多个核心数据模型以及为什么 有什么好处 我正在开发一个应用程序 我认为我可以从多个模型中受益 但我不确定其他好处 我即将推出的应用程序将适用于 iPad 和 iPhone 的另一个版本 iPad 有 3 个主要内容 iPho
  • HttpClient setReachabilityStatusChangedBlock 声明没有接口

    尝试使用 AFNetworkings ReachabilityStatusChanged 但得到 HTTPCLIENT 没有可见的 interface 声明选择器 setReachabilityStatusChangeBlock 但Http
  • 强制本地化图像或图像资产

    正如在这个问题中 如何强制 NSLocalizedString 使用特定语言 https stackoverflow com questions 1669645 how to force nslocalizedstring to use a
  • Objective c RSA 与 OAEP 填充 sha256 之前的 ios 10

    我正在研究一种在iPhone中使用RSA加密方法的加密方法 到目前为止我可以用这种方法实现获取加密字符串 该字符串被服务器成功解密 SecKeyRef keyRef self addPublicKey pubKey SecKeyAlgori
  • iOS UITableView:使用 CAGradientLayer 将背景颜色指定为渐变

    我刚刚开始使用 Xcode 4 3 中的主从视图模板 我试图更改主视图的背景颜色并将其设置为颜色渐变 这是我尝试过的 Colors m import Colors h implementation Colors UIColor naviga
  • 当您从不同的视图控制器进行segue时,如何将数据从一个视图控制器保存(追加)到另一个视图控制器?

    抱歉 问题有点长 请多多包涵 基本上 我正在尝试使用 swift 编写一个简单的递增 递减 ios 应用程序 我有三个主视图控制器 一个是 初始视图控制器 即根视图控制器 仅包含两个按钮 一个以模态方式呈现到实际计数页面 第二个视图控制器
  • AST 文件格式错误或损坏

    我有一个问题 我不知道为什么会发生这种情况 但很可能是因为我错误地按了 移动到垃圾箱 到某些系统框架 我收到一条错误消息 AST 文件格式错误或损坏 找不到 AST 文件引用的文件 Users username myProject Quar
  • Xcode 7.2 无法连接到装有 iOS 9.2 的 iPhone

    出于开发目的 我已经在我的 iPhone 5s 上安装了 iOS 9 2 beta 当然 我还安装了Xcode 7 2 beta 当我想在设备上运行应用程序扩展 键盘 时 该应用程序会正确构建 安装在 iPhone 上并启动 然而 然后我在
  • 在 UIScrollView 中禁用 2 根手指滚动

    我想在我的应用程序中禁用两指滚动UIScrollView 我对其进行了子类化 并使用以下代码调整了其内置手势识别器 for UIGestureRecognizer mgestureRecognizer in scroller gesture
  • 在 OSX 上检测 Objective C 或 C++ 中的文件夹访问(如 fs_usage 命令)

    我正在 OSX 上开发实时病毒扫描程序 OSX 的命令行命令fs usage可以通过以下方式确定文件夹访问权限 并且只能以 root 用户身份运行 fs usage w f pathname grep Users Documents Use
  • 当键盘出现时调整 UITextView 的大小

    我想在键盘出现时调整文本视图的大小 我的代码如下 我打开了自动布局 因此使用来自超级视图的 textView gt bottom 空间的约束 并通过 IBOutlet distanceFromBottom 引用它 void keyboard
  • 如何顺序访问字典?

    我想以元素存储在字典中的方式访问字典 有人可以帮我做这件事吗 提前致谢 字典将其值存储在由键或更精确地由键的哈希值索引的结构中 这就是他们速度很快的原因 他们不需要搜索值 他们只需获取键的值并直接查找值 在大多数情况下 只有在发生冲突的键哈
  • iOS 上的推送通知渐进式 Web 应用程序

    我需要开发一个集成了推送通知的渐进式网络应用程序 在网上搜索我发现了关于这个主题的不同意见 如果我理解正确的话 目前我们无法在移动版 safari 中推送通知 但仅限桌面版 这样对吗 你有什么建议来获得相同的结果吗 我不是iOS专家 我想知
  • 如何从 App Store Connect 中删除自动创建的 macOS 应用程序

    I have an iOS app Recently macOS app automatically appeared in App Store Connect 我不打算在 macOS 上发布 iOS 应用程序 我怎样才能摆脱它 我打开了
  • 为什么我收到 com.facebook.sdk.login 错误 308?

    我正在使用 Xcode 7 0 在 iOS 9 0 2 上进行测试并使用 Facebook SDK 4 7 0 当我登录用户时 大多数时候一切都正常 但有时我不断收到此错误 但我不知道为什么 操作无法完成 com facebook sdk

随机推荐

  • 在 iOS 中从 NSDictionary 生成 JSON 字符串

    我有一个dictionary我需要生成一个JSON string通过使用dictionary 可以转换吗 你们能帮忙解决这个问题吗 Apple 在 iOS 5 0 和 Mac OS X 10 7 中添加了 JSON 解析器和序列化器 看NS
  • 在 Tomcat 上配置 PHP 会出现异常:UnsatisfiedLinkError

    我一直在尝试在 Tomcat 上使用 PHP 不要问为什么 我只是必须这样做 并且一直遵循使用 Tomcat 配置 PHP http toostep com trends configure php with tomcat以及一些使用 PE
  • 使用神经网络功能时出现错误

    我在可用的波士顿数据集上尝试了 R 中的神经网络 data Boston package MASS data lt Boston 只保留我们想要使用的变量 keeps lt c crim indus nox rm age dis tax p
  • Mongodb pymongo.errors.ServerSelectionTimeoutError:localhost:27017:[Errno 111]连接被拒绝,超时:30秒,

    我正在尝试本地连接到我的数据库 我已经在 MongoDB Compass 上建立了与数据库的连接 但是当我运行简单的代码时 出现以下错误 pymongo errors ServerSelectionTimeoutError localhos
  • macOS swift - 将数据保存到本地存储 - 最佳实践

    我是 macOS 开发的新手 我有一个应用程序 我需要将字符串 例如令牌 保存到某些本地存储 在关闭并打开应用程序后 我想检索该字符串 是否有可能只有我的应用程序才能检索该字符串 是不是最好写到txt文件或还有其他一些可能性 谢谢 这取决于
  • 如何从面板中加载的子用户控件访问父类功能/控件

    我有一个主窗体 其中包含一个面板 该面板将不同的用户控件加载到面板中 现在我需要从用户控件访问主窗体中的功能 下面我给出了我的代码 这是我的主要 Windows 窗体类 public partial class Form1 Form pub
  • 如何在 iPhone 中更改方向时更改视图控制器的视图?

    我正在开发一个支持 2 个方向的 iPhone 应用程序 我有这个视图控制器的 2 个 UIView 文件 我需要根据设备界面方向将相应的 UIView 文件设置到视图控制器 你能指导我如何改变方向吗 为什么要对两个方向使用两个视图 如果纵
  • 每次使用 pip 3 时如何解决“错误:外部管理环境”?

    错误信息 error externally managed environment This environment is externally managed gt To install Python packages system wi
  • 将自定义列添加到 Woocommerce 3+ 中的“我的帐户订单”表

    Woocommerce 3 5 x 在用户帐户 我的帐户 区域有一个特殊页面 其中显示用户以前的订单 此页面现在默认显示 5 列 这是 woocommerce 订单区域的屏幕截图 共有 5 列 我的订单 https i stack imgu
  • 如何在 R 中为蒙特卡洛创建更高效​​的模拟循环

    此练习的目的是创建营养摄入值的人群分布 早期数据中有重复的测量值 这些测量值已被删除 因此每一行都是数据框中唯一的人 我有这段代码 在使用少量数据框行进行测试时效果非常好 对于所有 7135 行 速度非常慢 我试图给它计时 但当我的机器上的
  • 条目压缩大小无效

    我使用称为 ASM 的字节码库来更改类文件 然后我想将每个类文件写回 jar 文件而不是填充类文件的文件夹中 我通过运行以下代码来做到这一点 当因未达到预期大小而引发 ZipException 时 即出现我的问题 java util zip
  • jQuery Datepicker 中的“今天”按钮不起作用

    我正在使用 jQueryUI Datepicker 并显示 今天 按钮 但这不起作用 它在演示中也不起作用 http www jqueryui com demos datepicker buttonbar http www jqueryui
  • Python pandas 与 OR 逻辑合并

    我正在搜索 但没有找到这个问题的答案 你可以使用 OR 逻辑执行 pandas 数据帧的合并吗 基本上 相当于使用 where t1 A t2 A OR t1 A t2 B 的 SQL 合并 我遇到一种情况 我将信息从一个数据库提取到数据帧
  • ORACLE SQL LISTAGG 未返回预期结果

    我正在运行 Oracle Database 11g Enterprise 11 2 0 4 0 PL SQL Release 11 2 0 4 0 并且在获取 LISTAGG 函数返回我期望的数据集时遇到一些问题 这是场景 我有一个看起来像
  • 将WAR部署到WebSphere 9需要3个小时

    过去将 WAR 部署到 WebSphere 8 5 5 0 需要 3 分钟 将相同的 WAR 部署到 WebSphere 9 0 0 2 需要 3 个小时 这是 WebSphere 9 0 0 2 中错误的表现吗 有人有类似的经历吗 更新
  • iphone界面发光效果问题

    我想在这个名为 convert 的应用程序中实现我认为是 UILabels 或者可能是自定义控件 的发光效果 我认为该应用程序看起来非常简洁 我正在尝试为我自己的应用程序实现类似的效果 有什么帮助吗 此致 david 替代文本 http w
  • 如何为 Excel 创建 GUI 插件?

    我在 Google 上进行了一些研究 但仍然找不到 Visual Studio 中的项目 我想为 Excel 创建一个 GUI 插件 例如带有 Windows 窗体的功能区上的停靠窗口 这是 Visual Studio 中的什么项目 我已经
  • 将控件添加到 Office 中的现有功能区组 (VSTO)

    我找到了很多关于如何向现有功能区添加新组的示例 这效果很好 我不知道如何将新控件添加到现有功能区上的现有组中 假设我想将自己的命令添加到 审阅 选项卡上的 校对 组中 我正在 VS2010 中为 Office2010 开发此程序 但我想同样
  • Spring Boot中增加Tomcat的连接超时

    如何增加超时 以便在处理响应之前 请求不会超时 Spring Boot 中的 Tomcat 设置 server tomcat max connections 2000 server tomcat max threads 200 server
  • 一个 CIImage 中有多个 CIFilter?

    我有两个 CIFilter 曝光和色调 我需要将过滤器组合到一个 UIImage 上 我该怎么办 下面是我到目前为止所拥有的一些代码 CIFilter hueFilter CIFilter exposureFilter CIImage ad