gpt4 book ai didi

iphone - 从UIImagePickerController传递图像数据以进行后台处理

转载 作者:行者123 更新时间:2023-12-03 13:13:42 25 4
gpt4 key购买 nike

我正在使用UIImagePickerController捕获静态图像。然后,我需要做一些处理工作,然后再将图像的不同副本保存到Core Data存储中。在iPhone 4上,处理和保存工作最多可能需要4到8秒钟,因此我试图将工作分支到后台队列,以便整个应用程序和UI都不会阻塞。

我的问题的根源是这个。只要UIImage对象完全限于该线程,是否可以在后台线程中使用UIImage?我在apple's thread safety summary中找到了关于NSImage的内容。我假设UIImage将以相同的方式工作。

NSImage Restrictions:

One thread can create an NSImage object, draw to the image buffer, and pass it off to the main thread for drawing. The underlying image cache is shared among all threads. For more information about images and how caching works, see Cocoa Drawing Guide.



任何人都可以确认这一点,还是在主线程之外触摸UIImage对象之类的东西完全是错误的。如果使用受限的UIImage实例是可以的,那么这会导致另一个问题。 UIImagePickerController返回一个NSDictionary,它是线程安全的,但在该NSDictionary中是一个UIImage对象。将字典传递给另一个线程是否安全,然后在该线程内使用包含的对象是否安全?

如果imagePicker信息字典中的UIImage不安全使用,那么关于如何最好地进行的任何建议?

我认为我已经解决了实际的核心数据线程问题。但是,为了获得信息,我目前使用NSValueTransformer在自定义NSManagedObject子类内与UIData之间来回转换UIImage时,使用NSValueTransformer编写和检索图像数据。

最佳答案

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

  • Image Picker Delegate返回用户图像。
  • 将图像分配给后台线程类(在我的情况下,这是一个@property保留的IVAR)
  • 关闭/关闭图像选择器
  • 在处理原始
  • 之后,继续进行后台处理并创建一个新的UIImage。
  • 新的UIImage返回到适当的VC
  • 后台进程结束。
  • 关于iphone - 从UIImagePickerController传递图像数据以进行后台处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5380953/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com