【问题标题】:Is it possible to create an ALAsset object from NSData or other image type (CFImageRef, CIImage, UIImage)? [closed]是否可以从 NSData 或其他图像类型(CFImageRef、CIImage、UIImage)创建 ALAsset 对象? [关闭]
【发布时间】:2012-10-02 18:24:35
【问题描述】:

是否可以从NSData 或其他图像类型(CFImageRefCIImageUIImage)创建ALAsset 对象?

我不想将我的所有应用程序图像保存到相机胶卷,但我希望能够将多张图像上传到 Walgreen 的 QuickPrints API,这是一个编译库,只需要 ALAssets 进行多张图像上传.

编辑:我对 Walgreen 的 API/SDK 的理解不正确。有关详细信息,请参阅我的答案,如果您想在不使用 ALAsset 的情况下上传多张图片,则必须一次上传一张。

【问题讨论】:

  • 问题“是否可以创建 ALAsset [不保存到相机胶卷”实际上并不是 OP 真正想要回答的问题。请注意,OP 自己对他的问题的回答与原始问题几乎没有关系。

标签: objective-c ios uiimage nsdata alasset


【解决方案1】:

来自文档:“ALAsset 对象表示由照片应用程序管理的照片或视频。”因此,如果您真的需要 ALAsset,您别无选择,只能保存数据。

【讨论】:

  • 我在 Walgreens API 中找到了解决它的方法,但我不会将其标记为已接受,直到我完全满意没有办法通过构建来解决它一个虚拟的 ALAsset。你可能是对的,但我仍然不完全相信这是不可能的。
  • 那我就降级你的问题,因为你拒绝承认一个正确的答案。当然有一些变通方法,比如你可以用不同的图像一遍又一遍地编写相同的资产,但事实仍然是 ALAsset 的意思是“照片库中的文件”,仅此而已。
  • 如果您尝试遵循最佳实践和原则,我知道您的回答是正确的,但我已经知道了。在问这个问题之前,我逐行阅读了 ALAsset 文档。显然,我问的是试图一起破解未经 Apple 批准的东西,以及书籍作者与否,说“这是不可能的”是一个不可接受的答案。这是编程,该死的几乎任何事情都是可能的,有些事情可能是不可取的。
  • 我的意思是您问(并回答)了错误的问题。您询问是否可以在用户的​​照片库之外制作 ALAsset。它不是。没有任何技巧可以解决这个问题。这是一个沙盒问题。然而,事实证明你真正想知道的是关于 Walgreen 的 API 的一些东西。
  • 如果不保存到相机胶卷就不可能欺骗 ALAsset 对象,请用文档中的不止一句话向我证明,我会接受答案。我可以看到这在未来很有用,所以问题仍然存在。
【解决方案2】:

这个问题的真正答案是,虽然 Walgreen 的文档在询问时对此并不十分清楚,但购物车被作为批次跟踪,照片限制为 100 张,而不是将上传视为批次。

只要您不将购物车发送到 Walgreen 的 API,并收到带有以下内容的结帐 URL:

 [checkoutSDK postCart];

它将以“批处理”的形式跟踪所有单个和多个上传,最大限制为 100,而不是在每次调用时覆盖以前的购物车:

 [checkoutSDK upload:someTypeOfImageData];

希望他们很快会在文档中添加更多细节,如果他们还没有的话。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-24
    • 1970-01-01
    • 1970-01-01
    • 2018-09-06
    • 2012-07-29
    • 2017-04-22
    • 2011-03-11
    • 2017-04-14
    相关资源
    最近更新 更多