使用ALAssetsLibrary访问裁剪或编辑的图像

mit*_*tnt 9 objective-c ipad ios alassetslibrary

我有一个ipad应用程序,它使用Photos应用程序中的图像ALAssetsLibrary,然后将它们上传到Web服务器.到目前为止一切正常.

现在,如果我转到照片应用程序并编辑图像(比如裁剪)并上传,原始未裁剪的内容将上传.我正在使用资产网址访问/保存照片.

例如:

createPhoto: 
assetUrl: assets-library://asset/asset.JPG?id=542F09CA-00E1-412E-A7E6-0C222E3F8FFB&ext=JPG, 
UTIs: (
    "public.jpeg"
), 
UTI:public.jpeg
Run Code Online (Sandbox Code Playgroud)

这不是ALAssetsLibrary缓存问题,因为我已经尝试编辑,杀死应用程序,启动,上传仍然上传旧图像.

题:

  1. 我如何知道照片的编辑(裁剪/红眼/增强)版本是否可用?
  2. 如何访问已编辑的照片版本?

hol*_*ann 4

我认识到同样的行为并不久前做了一些测试。让我与您分享我的结果:

\n\n
    \n
  1. 编辑后的图像只能通过 fullScreenImage 方法获得。\nApple 的文档中也提到了这一点:\n“在 iOS 5 及更高版本中,此方法准确返回完全裁剪、旋转和调整的图像\xe2\x80\x94正如用户在照片或图像选择器中看到的那样。”

  2. \n
  3. fullResolutionImage 和 getBytes 方法返回未编辑的图像。但是,裁剪等编辑参数保存在图像元数据中。然而,此元数据信息只能由 Aperture 和 iPhoto 等 Apple 应用程序解释。

  4. \n
  5. 您可以通过检查图像元数据来了解图像是否已被编辑。比较未编辑和已编辑图像的元数据,并查找元数据字段中的差异。

  6. \n
\n

  • 不幸的是,第三方应用程序没有 API 可以做到这一点。 (2认同)