不确定如何使用 CICrop 裁剪图像

2024-03-25

我正在尝试使用 CICrop 裁剪图像,但是当我尝试裁剪时,它崩溃并显示以下错误消息:

由于未捕获的异常“NSUnknownKeyException”而终止应用程序, 原因: '[ setValue:forUndefinedKey:]: 这个类 不符合键的键值编码 CIAttributeType矩形。' ***第一次抛出调用堆栈:(0x1847fc2d8 0x1964c80e4 0x1847fbf5c 0x184e34a4c 0x185635480 0x10005e554 0x10005eb7c 0x1892a9398 0x189292474 0x1892a8d34 0x1892a89c0 0x1892a1efc 0x189275120 0x1895162b8 0x189273634 0x1847b4240 0x1847b34e4 0x1847b1594 0x1846dd2d4 0x18e1336fc 0x1892daf40 0x10006481c 0x196b72a08) libc++abi.dylib:以未捕获的类型异常终止 NS异常

这是我的代码:

@IBAction func CropButton(sender: UIButton)
{
   let CropBoxHeight = CGFloat(200)
   let CropBoxWidth = CGFloat(200)          
   let Rectangle = CIVector(x: view.center.x, y: view.center.y, z: 200, w: 200)
   let filter = CIFilter(name: "CICrop")
   let inputImage = CIImage(image: originalImage)

   let ciContext = CIContext(options: nil)

   filter.setDefaults()
   filter.setValue(inputImage, forKey: kCIInputImageKey)
   filter.setValue(Rectangle, forKey: kCIAttributeTypeRectangle)

   let originalOrientation: UIImageOrientation = imageView.image!.imageOrientation
   let originalScale = imageView.image!.scale

   let cgImage = ciContext.createCGImage(filter.outputImage, fromRect: inputImage.extent())

    imageView.image = UIImage(CGImage: cgImage, scale: originalScale, orientation: originalOrientation)!
}

它在这条线上崩溃:filter.setValue(Rectangle, forKey: kCIAttributeTypeRectangle)


看来你需要使用

filter.setValue(Rectangle, forKey: "inputRectangle")

代替

filter.setValue(Rectangle, forKey: kCIAttributeTypeRectangle)

这可以在官方文档 https://developer.apple.com/library/prerelease/ios/documentation/GraphicsImaging/Reference/CoreImageFilterReference/index.html#//apple_ref/doc/filter/ci/CICrop。然而,我没有找到该键的任何内置常量。

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

不确定如何使用 CICrop 裁剪图像 的相关文章

随机推荐

  • 使用 Spring 配置文件设置系统属性

    配置 Spring 2 5 Junit 4 Log4jlog4j 文件位置是从系统属性指定的 log location 在运行时 使用 D java 选项设置系统属性 一切都很好 问题 我需要什么 在单元测试时 未设置系统属性 且未解析文件
  • SwiftUI 中单击按钮时的 NavigationView 和 NavigationLink?

    我试图从登录视图推送到详细视图 但无法成功 甚至导航栏也没有显示在登录视图中 如何在 SwiftUI 中按下按钮单击 如何在按钮单击时使用 NavigationLink var body some View NavigationView V
  • 领域驱动设计和安全

    这与此相关question https stackoverflow com questions 3006808 security implementation in domain driven design这似乎是不久前问过的 项目中的安全
  • Swift - 防止 UIViewController 中的返回事件

    我有一个关于取消 UIViewController 中后退按钮触发的后退事件的问题 在 Objective C 中有以下内容扩大 https github com onegray UIViewController BackButtonHan
  • 获取当月的星期一到星期六

    在一个月内 我想知道当月的周一到周六 例如 2011 年 10 月有 3 oct 2011 to 8 oct 2011 10 OCt 11 to 15 Oct 11 17 Oct 11 to 22 oct 2011 24 Oct 2011
  • 对链表进行分区

    我正在尝试基于链表数据结构来解决这个算法问题 问题如下 给定一个链表和一个值 x 对其进行分区 使得所有小于 x 的节点都位于大于或等于 x 的节点之前 您应该保留两个分区中节点的原始相对顺序 例如 给定 1 gt 4 gt 3 gt 2
  • 如何在 GWT 2.7 应用程序中启用生产模式

    我想通过 gwt maven plugin 和 jenkins 在我的服务器上部署 GWT 2 7 应用程序 但是 在编译过程之后 当我启动我的应用程序时 我收到以下错误消息 Couldn t load APPLICATION NAME f
  • 尝试通过在 Visual Studio 2017 中的 .git-ignore 文件中添加 slnx.sqlite 文件来撤消/忽略,但它仍然显示未提交。

    由于我正在 Visual Studio 中处理一个项目 并尝试提交更改 我已在 gitignore 中添加了我不想提交的文件 我在 gitignore 文件中添加了 vs slnx sqlite 但它仍然显示为未提交的文件 我必须做什么 请
  • 将 Excel 单元格范围转换为 DataTable C#

    我想在不使用 OLEDB 的情况下将 Excel 工作表的选定单元格范围读取到 DataTable 中 我也不想使用第三方工具 这是我到目前为止所做的 public void converter xlApp new Microsoft Of
  • 视觉工作室项目文件

    和有什么区别 vcproj and a vcxprojVisual Studio 项目文件 是个 vcproj格式仅在 2010 年之前的 Visual Studio 版本中可用 我问这个问题是因为我正在阅读 10 12 的 MSDN 教程
  • 如何使用 ggplot 生成非标准绘图类型?

    我想用 ggplot 制作一个看起来与此非常接近的图 在这里找到 http learnr files wordpress com 2009 07 chapter04 04 05 r png 然而 我想绘制条件范围 而不是频率 这是我想要在
  • R 中的形式参数“数据”与多个实际参数匹配

    当我在 R 中运行以下代码时 library mclust data iris mc lt Mclust iris 1 4 3 plot mc data iris 1 4 what classification dimens c 3 4 t
  • 遗留应用程序的迁移:EJB3或Spring

    我有旧应用程序使用struts ejb2 0 hibernate v3 0在 JBoss v4 0 上运行 现在我们已经将该应用程序迁移到新技术堆栈 我们正在探索pros and cons不同的技术堆栈 现在我们有两种选择 EJB3 0 J
  • 如何向随机频道发送消息?

    我正在尝试制作一个机器人 当用户发送特定消息时 它会向随机选择的频道发送随机消息 除了获取所有频道 ID 并手动将它们添加到列表中 然后从该列表中随机选择之外 我不知道如何解决这个问题 但是这种方法存在一些非常大的问题 而且它不起作用 我尝
  • 0除以无穷大一定是0吗?

    根据这个问题 https stackoverflow com questions 1613988 dividing by infinity n inf预计为零n 0 什么时候呢n 0 根据 IEEE 754 0 inf 0总是正确的 从数学
  • 如何在微风中全局应用 MaxExpansionDepth 或应用到整个控制器

    我找到了这个答案 MaxExpansionDepth 与最新的 webapi 和微风 https stackoverflow com questions 19668693 maxexpansiondepth with latest weba
  • 在 Rstudio 中使用 knitr 和在命令行中使用 knit2html 时,HTML 输出有所不同

    我正在尝试使用 knit 从 R markdown 文件生成 html 文档 当我在 R studio 中使用 knit html 按钮时 它工作正常 并且得到了我想要的输出 然而 当我在命令行中使用 knit2html 时 输出 html
  • 在 mono/Linux 下从命名管道读取/写入

    我想从 Linux 下的命名管道 FIFo 队列中读取 写入 我已经尝试了标准类 StreamWriter 和 System IO 中的其他类 但它失败了 因为它正在使用查找 有人曾经使用 Mono 从命名管道中写入 读取过吗 我正在设法阅
  • ES6 导入的执行顺序(HTML 和代码)

    如果我有以下情况 我说得对吗 你不能 100 确定three js将被处决AFTER one js and two js 但是 如果我有 我说得对吗 我可以有信心three js将被处决AFTER one js and two js 这个很
  • 不确定如何使用 CICrop 裁剪图像

    我正在尝试使用 CICrop 裁剪图像 但是当我尝试裁剪时 它崩溃并显示以下错误消息 由于未捕获的异常 NSUnknownKeyException 而终止应用程序 原因 setValue forUndefinedKey 这个类 不符合键的键