NSURL 中的 CGImage 有效,但 UIImage 中无效

2024-03-02

我在对图像应用滤镜时遇到一些问题。使用 CIImage:imageWithContentsOfURL 时,以下代码完美运行:

NSInteger filterIndex = [(UITapGestureRecognizer *)sender view].tag;
Filter *filter = [filters objectAtIndex:filterIndex];

CIContext *context = [CIContext contextWithOptions:nil];

CIImage *image = [CIImage imageWithContentsOfURL:[NSURL URLWithString:@"http://url.to/photo.jpg"]];

[filter.filter setValue:image forKey:kCIInputImageKey];

CIImage *result = [filter.filter valueForKey:kCIOutputImageKey];
CGRect extent = [result extent];
CGImageRef cgImage = [context createCGImage:result fromRect:extent];

[self.imageView setImage:[UIImage imageWithCGImage:cgImage]];

Filter 只是一个包含过滤器名称和 CIFilter 的模型:

-(id)initWithNameAndFilter:(NSString *)theName filter:(CIFilter *)theFilter;
@property (nonatomic, strong) NSString *name;
@property (nonatomic, strong) CIFilter *filter;

但是当我尝试使用以下代码加载本地 UIImage 时:

CIImage *ciImage = [UIImage imageNamed:@"test.png"].CIImage;

过滤后的图像仅变白(或消失)。我究竟做错了什么?


问题是

[UIImage imageNamed:@"test.png"].CIImage

并没有按照你的想法去做。它不会将 UIImage 转换为 CIImage,或从 UIImage 派生 CIImage;它仅提供对 CIImage 的引用already此 UIImage 的基础。但这个 UIImage 没有haveCIImage 基础;它是位图(CGImage),而不是滤镜输出(CIImage)。

这就是为什么,正如您所正确发现的,您使用了不同的方法,即 CIImage 的initWithCGImage:, which does执行转换。 UIImage(正如我刚才所说)does有 CGImage 基础,所以这是可行的。

换句话说,UIImage(大部分)只是一个wrapper。它可以是位图 (CGImage) 或过滤器输出 (CIImage) 的包装器。而这两种方法,CGImage and CIImage,只是获取包装内容的方法;其中只有一个适用于任何给定的 UIImage,并且大多数情况下它会CGImage.

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

NSURL 中的 CGImage 有效,但 UIImage 中无效 的相关文章

  • 如何修复 ReactiveCocoa(带有 CocoaPods)的安装?

    这里是新手 尝试将 ReactiveCocoa 2 2 4 和 CocoaPods 安装到项目中 但在运行时遇到错误 我用过github 上的这个 podspec https github com CocoaPods Specs blob
  • 如何将unix时间戳转换为iphone中的nsdate [重复]

    这个问题在这里已经有答案了 可能的重复 从 Unix 时间戳创建 NSDate https stackoverflow com questions 5827240 create nsdate from unix timestamp 我有一个
  • 如何为图层阴影不透明度设置动画?

    我有一个视图 我已将 LayerOpacity 设置为 1 theView layer shadowOpacity 1 0 当视图位于屏幕下方时 这看起来很好 当我将此视图向上移动以与另一个有阴影的视图齐平时 它们看起来不太好 有没有办法让
  • 使用 ZBarSDK 时 iPhone 相机失去自动对焦功能

    我正在开发一个应用程序 用户可以选择是否要扫描条形码或拍摄某物的照片 为了拍照 我正在使用UIImagePickerController照常 为了扫描条形码 我使用 ZbarSDK 1 2ZBarReaderViewController 拍
  • 动画 UICollectionView 单元格大小更改并重新定位周围单元格

    Goal 以动画方式改变单元格的高度并重新定位周围的单元格 设想 集合视图中的某些单元格会加载远程图像 最初 这些单元格的大小是静态的 并显示活动指示器 加载图像后 会将其添加到其单元格中 并且更改单元格的高度以适合照片 Notes 我正在
  • 为什么 Objective-C 方法名称的最后一部分必须带有参数(当有多个部分时)?

    在 Objective C 中 您不能声明最后一个组件不带参数的方法名称 例如 以下内容是非法的 void take id theMoney andRun void take id yourMedicine andDontComplain
  • 更改导航项(栏)的背景颜色

    有没有一种简单的方法可以更改视图顶部导航项的背景颜色 我有一个基于导航的应用程序 我只希望一个视图获得另一种背景颜色 我主要使用 IB 创建视图 我找到了以下解决方案 未测试 float r 10 float g 55 float b 13
  • 在文本视图滚动之前无法看到 UITextView 中的文本

    我的应用程序中有一堆文本视图 由于某种原因 无论我以编程方式 来自互联网 还是通过界面生成器 硬编码 设置 UITextView 文本 无论我做什么 当我在测试时转到该文本视图时它都是空白的 但当我滚动它的那一刻 所有文本就突然出现了 只是
  • 如何从 AFNetworking 和 AFJSONRequestOperation 获取可变字典?

    我将 JSONKit 与 AFNetworking 的 AFHTTPClient 带有 AFJSONRequestOperation 一起使用 我似乎无法弄清楚如何触发使用 JSONKit 的 mutableObjectFrom 方法 而不
  • 将 UIButton 中的图像缩放到 AspectFit?

    我想将图像添加到 UIButton 并且还想缩放图像以适合 UIButton 使图像变小 请告诉我该怎么做 这是我尝试过的 但它不起作用 将图像添加到按钮并使用setContentMode self itemImageButton setI
  • DatePicker 停止 CoreData 按预期工作

    我有一个应用程序 它保存 UIDatePicker 中的文本和日期 然后在您回到 UIDatePicker 中的该日期时显示该注释 效果很好 只有我发现将 UIDatePicker 日期设置为今天会停止 CoreData 工作 只有当我运行
  • UIDocumentInteractionController 阻止“打开方式”表中的空投

    在我的应用程序中 我允许用户通过 Instagram 分享照片 这需要使用 UIDocumentInteractionController 如果手机支持 则会自动检测空投 如何将其从 打开方式 操作表中删除 即使我使用 UIActivity
  • 如何解决 CoreData mogenerator 未找到问题

    我收到如下所示的错误 我不知道我错过了什么 我该如何解决这个问题 如下图所示 Users nischalhada Documents XcodePro mnepalnews revisited 2 0 CoreData mogenerato
  • 使用 NSError 检查错误的正确结构

    我正在编写各种例程 并尽力保持其整洁和重构 我正在创建的方法开始看起来与此代码类似 IBAction buttonPress id sender Create Document Shopping List with this documen
  • 在 Swift 中使用 CommonCrypto 解密时出现问题

    我在一家Swift only加密 解密Extension for String and NSData 并且 crypt 部分的工作基于 Zaph 在链接问题中提供的答案 在 Swift 中使用 CCCrypt CommonCrypt 时出现
  • 来自 iPhone/iPad 的 json Web 服务

    有人可以帮助我解决如何从 iphone 或 ipad 使用 json Web 服务的问题吗 这里我的要求是使用 API 密钥实现 json webservice 如果可能的话发布一些教程或示例链接 谢谢 规范的 JSON 处理库是here
  • iphone:如何停止快门动画?

    我有两个问题 1 我想知道如何在相机加载时停止快门动画 我正在使用 UIImagePickerController 我已经参考了堆栈溢出的许多答案 但没有成功 2 我在相机中有一个自定义按钮 使用cameraOverlayView并想通过单
  • 在 UIImage 顶部绘制透明圆圈 - iPhone SDK

    我在尝试找出如何在 UIImageView 中的 UIImage 顶部绘制透明圆圈时遇到了很多麻烦 谷歌给了我线索 但我仍然找不到有效的例子 有没有人知道的例子可以证明这一点 最简单的方法就是创建一个半透明的方形 UIView 然后将其图层
  • iPhone 和加密库

    我想我必须在我的 iPhone 应用程序中使用加密库 我想问你有关苹果公司实施的加密货币出口政策的影响 我需要做一些额外的事情吗 例如填写表格等 1 如果我使用 MD5 进行哈希处理 2 如果我使用对称加密 Thanks EDIT 2009
  • CGImage/UIImage 在 UI 线程上延迟加载会导致卡顿

    我的程序显示一个水平滚动表面 从左到右平铺有 UIImageViews 代码在 UI 线程上运行 以确保新可见的 UIImageView 分配有新加载的 UIImage 加载发生在后台线程上 一切工作几乎都很好 除了每个图像变得可见时出现口

随机推荐

  • VirtualTreeView 的 Firemonkey 版本

    有谁知道是否有流行的 Firemonkey 版本在准备 另外 是否有人收集了一些将自定义控件移植到 Firemonkey 的经验 并且可以估计将虚拟树视图移植到 Firemonkey 需要多少工作 我们需要这个控件 并且只有当我们能让这个控
  • log4j 打印错误的字符

    有人报告我给他的使用 log4j 的程序无法正确打印字符 他告诉我 在文件中打印为 例如 Vid o 变成 Vid o 这可能是一些编码问题 但我喜欢重现问题以证明它已修复 我无法找到有关该主题的良好 且简短 文档 因此 是什么导致了这个问
  • 首次登录后 React 不重定向。但在强制重定向并再次执行登录操作后重定向

    我有一个登录表单 单击后会调用以下函数 总结一下 从 api 获取响应 如果有效 则设置 cookie 然后使用this props history push handleSubmit event event preventDefault
  • Apache 或其他一些 CLIENT JAVA 实现是否支持 HTTP/2?

    我正在寻找可以连接到基于 HTTP 2 的服务器的 java 客户端 该服务器已经支持 HTTP 2 API 我没有看到最流行的 Apache Http 客户端https hc apache org https hc apache org
  • 适用于移动设备的 Javascript onClick

    我正在开发一个导航子菜单 我需要可以通过移动和平板电脑设备访问它 我知道使用 onClick return true 可以解决问题 但是 我还需要在用户单击列表项时关闭列表项 基本上我需要它来切换子菜单 如果我添加这一行简单的 Javasc
  • 在 Kotlin 中使用线程还是协程更好?

    我正在从应用程序发送邮件 由于邮件发送需要时间并阻塞主线程 因此我正在创建一个新线程并将邮件发送任务移交给新线程 对于发送邮件的大量并发请求 我必须创建大量线程 但创建线程似乎很慢 我的问题是 如果我使用 Kotlin 的协程 它是否能提供
  • 强制惰性实体加载真实实例

    我有一个惰性实体的代理 它是通过加载子实体在会话中创建的 对父实体的后续提取仅返回 NH 代理 我需要实际实例来检查类型 实体已加入子类 我一定错过了一些东西 但我找不到办法做到这一点 Session Refresh proxy 似乎没有帮
  • “单页”JS网站和SEO

    现在有很多很酷的工具可以用来制作强大的 单页 JavaScript 网站 在我看来 正确的做法是让服务器充当 API 仅此而已 并让客户端处理所有 HTML 生成内容 这种 模式 的问题在于缺乏搜索引擎的支持 我可以想到两种解决方案 当用户
  • 有条件地解析 Unity 中的命名实现

    Unity 允许您命名同一接口的不同实现 然后按名称解析它们 var container new UnityContainer register container Register
  • “overflow-y:scroll”属性是否有助于防止 Opera/Safari 中的水平移动?

    我在 CSS 中使用以下内容来强制 Firefox 中的垂直滚动条 body overflow y scroll 这个技术在 Safari 和 Opera 中有效吗 有人说是 有人说不然 CSS 规则overflow y scroll为我工
  • c中如何使用fgets()通过用户输入来控制while循环的执行?

    我正在尝试用 c 编写一个程序 其中我可以通过来自标准输入的用户输入来控制 while 循环的执行 我已经通过 scanf 和 getchar 函数成功完成了它 现在我尝试使用广泛推荐使用的 fgets 函数而不是 scanf 函数来复制此
  • ModuleNotFoundError:没有名为“word2number”的模块错误

    使用命令安装 word2number 时 from word2number import w2n 我在使用 Google Colab 时收到此错误 ModuleNotFoundError 没有名为 word2number 的模块错误 我可以
  • 将 Azure SDK 从 2.4 升级到 2.6 后生成错误

    我刚刚使用项目属性 gt 应用程序下的升级功能将我的 Web 角色项目 和解决方案 从 Azure SDK 2 4 升级到 Azure SDK 2 6 当我构建应用程序时 一切正常 但是当我尝试运行它 并启动 Azure 模拟器等 时 如果
  • 带有 envmap 的 Aframe gltf-model 演示

    在aframe中加载GLTF 模型非常方便 但没有发现包含envmap纹理的案例 我希望官方能提供与三位官方相同的案例 pmremGenerator fromEquirectangular texture 函数用于使gltf模型产生真实的反
  • Amazon S3 - 使用 Java API 批量文件上传?

    我们希望开始使用 S3 来满足我们的一些存储需求 并且我正在寻找一种方法来执行 N 个文件的批量上传 我已经使用 Java API 编写了代码来执行单个文件上传 但是有没有办法提供要传递到 S3 存储桶的文件列表 我确实看过以下问题是否可以
  • 如何防止 css 转换为内联 css

    我正在使用 jquery 在按下按钮时修改 div 元素的 css 我注意到 css 内联到 HTML 中 如何防止样式内联 这些样式标签出现在渲染时 链接您的stylesheet in head
  • Eclipse 对于 g++ 不返回的代码返回错误

    构建简单的代码 示例如下 在 eclipse 上返回错误 而命令行中的 g 不会返回错误 eclipse 和 g 都输出可执行文件 其行为相同 并且结果符合我的期望 当代码不像我所展示的示例那样简单时 这会很痛苦 任何想法表示赞赏 环境 E
  • 如何拆分专有名称?

    我有一份来自 AD 的人员及其 DN 列表 我无法直接访问该 AD 他们的 DN 格式为 DNList CN Bob Dylan OU Users OU Dept OU Agency OU NorthState DC myworld DC
  • 检查列表中是否存在值为 x 的namedtuple

    我想查看列表中是否存在命名元组 类似于 numbers 1 2 3 4 5 if 1 in numbers do stuff 有没有Pythonic 或没有 的方法来做到这一点 就像是 namedtuples namedtuple 1 na
  • NSURL 中的 CGImage 有效,但 UIImage 中无效

    我在对图像应用滤镜时遇到一些问题 使用 CIImage imageWithContentsOfURL 时 以下代码完美运行 NSInteger filterIndex UITapGestureRecognizer sender view t