问题标签 [phassetslibrary]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
343 浏览

swift - 将 PHAsset 从一张专辑移动到另一张专辑 (Swift)

我想将PHAsset一张专辑从一张专辑移到另一张专辑。这是我正在做的事情:

问题是它创建了一个副本到目的地而不是移动。最后,我最终在不同的专辑中获得了相同的图像。

0 投票
0 回答
502 浏览

ios - iOS 错误:无法找到资源

我在 iOS 设备上玩照片库。我尝试写入PHAssetResource本地文件。有时它起作用,有时它不起作用,我得到一个错误Error: Unable to locate resource <PHInternalAssetResource: 0x1740e8900> type=photo size={3264, 2448} fileSize=3185088 uti=public.jpeg filename=IMG_6683.JPG assetLocalIdentifier=BF00A76D-AC8E-4481-BC45-3E18D80C656D/L0/001。它发生PHAssets在本地设备上。我设置isNetworkAccessAllowedPHAssetResourceRequestOptionstrue 并检查进度,它报告下载停止在 0,5 并抛出上述错误。

我不知道发生了什么。我在文档中找不到任何解释。

0 投票
1 回答
1093 浏览

ios - SVGKit:如何使用 SVGKit 渲染引用 iOS 设备照片的 SVG XML 字符串

所以,我的基本问题是:

iOS 上有没有办法使用 SVGKit 来渲染包含对本地图像的引用的 SVG?

血腥细节

我的应用程序需要生成和呈现 SVG(NSString 中的 XML)。XML 将引用设备上的图像 URL(在相机胶卷中)。我正在使用适用于 iOS 的SVGKit。我可以使用以下方法从图像 PHAsset 中获取 URL(请参阅:StackOverflow:nsurl-from-phasset):

然后我在生成的 SVG XML 字符串中使用该图像 URL(这个是在模拟器中生成的):

我试过的

我尝试使用SVGKSourceString创建一个SVGKImage,但这会为本地图像 URL 返回一个空白图像(远程 URL 引用工作正常)。“空白图像”是指具有大小但没有图像内容的非零对象。

我在模拟器上注意到,如果我从设备上的文件中读取 SVG 内容,它就可以工作。我觉得这很奇怪,但是,无论如何。当它从文件中读取 SVG 内容时,它必须以不同的方式处理 URL 引用。因此,我将 NSString 转换为 NSInputStream,然后使用 SVGSourceLocalFile.initWithInputStream: 创建 SVGKSourceLocalFile,它也在模拟器上运行。渲染的 SVG 中引用的本地图像。(注意:我必须使用假文件名设置 filePath 以防止 imageWithSource 爆炸。)

但是,遗憾的是,这在真实设备上不起作用。SVGKImage imageSource:返回一个空白图像。

我强烈怀疑它不喜欢设备 URL 引用。我知道从 PHAsset 获取通用 URL 存在问题。模拟器上的 URL 在 Safari 模拟器中有效。但是我在真实设备上返回的 URL(看起来像“file:///var/mobile/Media/DCIM/102APPLE/IMG_2405.JPG”)在设备的 Safari 应用程序上不起作用。我还尝试将 PHAsset 转换为 ALAssetURL ..(请参阅StackOverflow:how-to-get-an-alasset-url-from-a-phasset),但这也不起作用。这也会返回一个空白图像。

版本详情

  • iOS版本:10.0.2(真实设备),sim上的各种版本(8.4、9.3、10.0)
  • SVGKit 版本:pod 'SVGKit', :git => ' https://github.com/SVGKit/SVGKit.git ', :branch => '2.x'
0 投票
1 回答
378 浏览

ios - 使用资产资源获取资产失败并出现错误“null”

我的应用程序读取相机胶卷中可用的照片和视频,使用PHAssetResource应用程序获取原始照片和视频数据。下面是用于从相机胶卷中检索数据的代码。

有时原始资产获取失败,并且完成处理程序被错误调用

错误域=NSCocoaErrorDomain 代码=-1 "(null)"

我不知道为什么这会失败。您能否提供一些解决此问题的建议。

0 投票
1 回答
191 浏览

ios - PHAsset CLLocation 未提供与照片应用相同的位置

我们正在使用以下方法从 PHAsset 属性中获取纬度和CLGeocoder经度reverseGeocodeLocation

我们正在获取 placeInfo 对象,但通道和 subThoroughfare 总是为零。

对于同一张照片,photosapp 能够获取通道和子通道。

先感谢您。

0 投票
2 回答
1234 浏览

ios - iOS Photokit - PHAsset pixelWidth 和 pixelHeight 与高分辨率图像不匹配

我的公司在通过获取 PHAsset 获取正确大小的元数据方面遇到了很大的问题。我们开发了一个 iOS 应用程序,允许客户从库中选择图片,获取每个图片的大小(以像素为单位),计算坐标以调整我们销售的小工具,然后将高质量的图片版本上传到我们的服务器以打印小工具。对于我们的一些客户,问题是发送的一些高质量版本的图片的像素大小与 PHAsset 对象给出的 pixelWidth 和 pixelHeight 不匹配。举个例子,我们有一张图片:

  • PHAsset 对象报告为 2096x3724
  • 但是,当请求全尺寸图像时,会生成 1536x2730 的图片

图片不在 iCloud 中,由运行 iOS 10.2 的 iPhone 6 SE 发送。这是获取全尺寸图像版本的代码:

也尝试使用 requestImageDataForAsset 方法,但没有运气:

在上传之前,从每张图片的高分辨率版本中获取精确尺寸对我们来说不是一个选项,因为从库中选择大量资产时会降低很多性能。

我们错过了还是做错了什么?有没有办法在不将全分辨率图像加载到内存的情况下以像素为单位获取资产大小?感谢您的帮助

0 投票
1 回答
2061 浏览

ios - 如何将视频保存到相机胶卷并获取资产 URL?

我需要从我的 iOS 应用中导出视频并获取资产 ID。过去,您可以使用ALAssetsLibrary

将图像保存在相机胶卷中并获取资产 url

但它现在已被弃用。我想知道现在实现这一目标的新方法是什么?谢谢!

0 投票
1 回答
760 浏览

ios - 通过获取资产集合排除 iCloud 共享相册

我正在尝试获取用户照片库中所有相册的列表,不包括任何 iCloud 共享相册。这是我到目前为止使用的代码:

如果我理解正确,该userAlbumsOptions.includeAssetSourceTypes属性应该过滤掉 iCloud 共享相册;但是,它们仍然显示在列表中。谁能建议我可能做错了什么?

0 投票
2 回答
2903 浏览

swift - 我正在尝试从本地标识符中获取资产并在 collectionview 中显示图像,但它会导致滚动抖动

我正在尝试以下方法从本地标识符中获取资产并将其显示在集合视图中,但加载时滚动变得生涩。

0 投票
1 回答
882 浏览

ios - Swift 3 或 4 保存到自定义相册会创建重复的图像

在选择或相机完成后,我将图像保存到自定义相册。显然,在相机完成后,只有一个图像,但是当用户在库选择器中选择图像时,在完成处理程序中,当我将该图像保存到自定义相册时,总是会创建一个副本。在图库和根 photoAlbum 中。似乎无处不在。我无法引用 ID 来查看它是否是之前创建的,因为 ID 是使用占位符新创建的。

有没有办法获取基本图像参考 ID,以便我可以将每个图像与原始图像相关联?据我了解,IOS(我讨厌 ios 顺便说一句)只保存一个实际图像,其余的只是指向原始图像对象的指针。如果是这种情况,我希望有一种方法可以获得对原始图像的可靠引用,并且从那里,我可以轻松管理从该基础图像创建的资产。