首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从UIImagePickerController传送图像数据进行背景处理

从UIImagePickerController传送图像数据进行背景处理
EN

Stack Overflow用户
提问于 2011-03-21 16:56:54
回答 1查看 972关注 0票数 2

我使用一个UIImagePickerController来捕捉静止图像。然后,在将图像的不同副本保存到Core数据存储区之前,我需要做一些处理工作。处理和保存工作在iPhone 4上最多需要4-8秒,所以我尝试将工作分支到后台队列,这样整个应用程序和UI就不会阻塞。

我问题的根源是这个。是否有可能在后台线程中使用UIImage,只要UIImage对象完全受限于该线程?我在苹果的线程安全总结中找到了关于NSImage的以下内容。我假设UIImage会以同样的方式工作。

NSImage限制: 一个线程可以创建一个NSImage对象,绘制到图像缓冲区,然后将它传递给主线程进行绘图。底层图像缓存在所有线程之间共享。有关图像和缓存工作方式的更多信息,请参见Cocoa绘图指南。

有人能证实这一点吗?或者,触摸主线程外部的UIImage对象是完全错误的。如果使用一个受限的UIImage实例是可以的,那么我就引出了另一个问题。UIImagePickerController返回一个线程安全的NSDictionary,但是在该NSDictionary中是一个UIImage对象。将该字典传递给另一个线程,然后使用包含的对象在该线程中安全吗?

如果UIImage在imagePicker信息字典中使用不安全,那么对于如何进行最好的处理有任何建议吗?

我认为我已经解决了实际的核心数据线程问题。但是,为了获取信息,我目前使用NSValueTransformer编写和检索图像数据,以在自定义的NSManagedObject子类中将UIImage转换为NSData。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-21 17:40:50

我在后台线程中编写了一些“处理UIImagePickerController后的图像”的代码,就像您一样,没有问题。下面是我成功的步骤。

  1. 图像选择器代表返回用户图像。
  2. 将图像分配给后台线程类(在我的例子中,它是一个@property,retain‘thread )
  3. 关闭/关闭图像选择器
  4. 后台处理继续进行,并在操作原始文件后创建新的UIImage。
  5. 新的UIImage返回给适当的VC
  6. 后台处理结束。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5380953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档