问题标签 [phasset]
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.
ios - 在 Swift 中获取 PHAsset 的位置
出于某种原因location
, a 上的属性PHAsset
仅在 Objective-c 中公开,而不在 Swift 中公开。
为了解决这个问题,我想我可以创建一个 Objective-C 类,其唯一目的是提取位置并将其导入 Swift。
LocationGetter.h
LocationGetter.m
到目前为止一切都很好,但是当我尝试在 Swift 中使用它时:
“LocationGetter.Type”没有名为“locationForAsset”的成员
额外的问题:为什么苹果没有location
迅速曝光?
ios - 如何确定 PHFetchResult 中的 PHAsset 是否代表已删除的照片?
我正在尝试使用 iOS 8 中的新照片框架获取在设备上拍摄的最后一张照片的缩略图。我现在要做的代码如下:
该代码设法抓取设备上最近拍摄的照片,但如果在设备上拍摄的最后一张照片被删除,则不考虑这一事实,并且按钮的图像设置为resultHandler
. 这似乎是由于在 iOS 8 中,当您删除一张照片时,它需要 30 天才能真正从设备中删除,并且出于某种原因,这些照片仍包含在PHFetchResult
s.
我试图在 中PHAsset
包含的对象上查找“已删除”或类似属性assetsInfo
,但找不到任何类型的信息。调试器中已删除照片的打印输出如下所示:
中下一个对象的打印输出,assetsInfo
我验证的照片没有被删除,如下所示:
那里似乎没有任何信息可以告诉我照片是否被删除。我认为该hidden
属性可能会有所帮助,但它与照片是否出现在特定的 Photos.app 相册/收藏中有关。我认为也许该assetSource
属性可能有用,但似乎没有记录在案,并且经过进一步调查,似乎也与照片的已删除状态无关。
有没有办法查看PHAsset
对象是否代表已删除的照片?有没有办法缩小我要获取的资产以排除“最近删除”相册中包含的照片?
ios8 - 来自 PHAsset 的 NSURL
我正在将我们的应用程序转换为使用 iOS8 的照片框架,ALAsset 框架显然是 iOS8 下的二等公民。
我有一个问题是我们的架构真的需要一个 NSURL 来表示媒体在“磁盘”上的位置。我们使用它来将媒体上传到我们的服务器以进行进一步处理。
使用 ALAsset 很容易:
但我只是没有在 PHAsset 中看到这种能力。我想我可以打电话:
然后把它写到文件系统中的一个临时点,但这看起来非常沉重和浪费,更不用说可能很慢了。
有没有办法得到这个,或者我要重构我的应用程序,只使用 iOS7 的 NSURL 和 iOS8 的其他方法?
ios8 - 使用 iOS8 中的新照片框架重新渲染视频
我需要能够从照片中拍摄视频并重新渲染,及时剪辑,更改宽度和高度以及帧速率。当然我需要开始:
我应该能够调整宽度、高度和持续时间。从中获取一个 NSData,将其写入文件 syset.m
但是 url 是 nil,这对我来说意味着我无法使用新的 Photos 框架编辑视频。(使用 AVAssetExportSession 时,ALAsset 对此没有问题。)这是有道理的,因为 Apple Dev 示例代码也无法编辑视频。
现在,为了让生活更轻松,我可以将该 url 传递给 AVAssetExportSession 但我不能,因为它是 nil。如果我只是修改了宽度、高度和持续时间,我仍然需要从中获取 NSData,然后将其写入文件系统。
我不需要将修改后的视频写回照片,我实际上需要文件系统上的视频,因为我会将它上传到我们的服务器。
ios - 如何使用 PhotoKit 访问慢动作视频的 NSData/NSURL
使用新的 Photo 框架,我可以NSData
使用requestImageDataForAsset
. 我还可以使用PHImageFileURLKey
返回的info NSDictionary
.
这适用于图像和普通视频。
但是,当资产是 PHAssetMediaSubtypeVideoHighFrameRate(慢动作视频)时,返回的数据对应于包含视频第一帧的 JPG 文件(NSData、dataUTI 和 info 字典都指向同一个 jpg 文件)。例如,这是慢动作视频返回的 URL 和 dataUTI:
PHImageFileURLKey = "file:///var/mobile/Media/PhotoData/Metadata/DCIM/100APPLE/IMG_0642.JPG"; PHImageFileUTIKey = "public.jpeg";
为什么会这样?如何访问慢动作视频的 NSData/NSURL 而不是这个 JPG 预览?
ios - PHAsset:什么是“assetSource”?
我正在枚举一个 PHFetchResult。如果我对返回的 PHAsset 执行 println,我会得到:
有谁知道assetSource=3
比特是什么?如果可能的话,我想在assetSource 上运行一个谓词,但在任何地方都找不到关于它是什么或如何访问它的任何信息。是私人的吗?
ios - requestImageDataForAsset 结果处理程序格式不正确
我正在尝试从 PHAsset 请求完整图像。
我的代码如下
我收到了这个错误:
我认为,我已经遵循了所需的尾随语法闭包,并输入了适当的参数。
我也观看了 WWDC 2014 视频。
似乎无法使其适用于完整图像。
如果我想要一个更小尺寸的图像,我使用了这个代码:
这有效。
所以我不确定我在第一次通话中做错了什么,但希望了解如何从 PHAsset 请求全尺寸图像和/或我在第一个代码块中的语法有什么问题。
谢谢
更新:这是错误消息
“不能使用参数列表类型‘(PHAsset, options:NilLiteralConvertible, (($T6, ($T6,$T7,$T8,($T6,$T7,$T8)... 。”
ios - 与 assetsd 的连接被中断或 assetsd 死亡
我从 PHAssets 加载照片。当我加载一些图像并将它们传递给另一个视图控制器时,我得到了这个错误日志。我似乎无法在网上找到任何关于此的内容。有谁遇到过这个并且知道它是什么?
我也收到了这个错误:
ios - 从“requestImageForAsset”返回的 UIImage 大小甚至不接近“targetSize”设置
我已经彻底阅读了最新的 iOS8 相框作品,我正在尝试从用户库中获取一些资产以进行显示。我让用户一次编辑 4 张图像。但正因为如此,我需要压缩图像,否则应用程序会崩溃。
我正在使用 PHImageManager 通过以下代码加载图像:
如您所见,我正在计算目标尺寸以确保图像至少不大于屏幕。如果是,我会在图像上按比例缩小。然而,这是一个典型的打印日志
目标大小为 (768.0,798.453531598513) 结果大小为 (1614.0,1678.0)
即使我将目标大小设置为 768x798(在这种特定情况下),它给我的结果 UIImage 是它的两倍多。现在根据文档,targetSize 参数
“要返回的图像的目标大小。”
不是最清楚的解释,但从我的实验来看,它与此不符。
如果你有一些建议,我很想听听!
swift - 照片框架 - 如何从 PHAsset 获取图像的 CLLocation?
我能够从 PHFetchResults 成功获取图像并将其加载到 UIImage 中,但是当我尝试获取图像的位置时,出现错误:
- 运行时 NSLog 语句中的“致命错误:在展开可选值时意外发现 nil”。
如果我NSLog
用以下语句替换上述语句以获取描述(或任何其他属性,如长度、像素尺寸等 NSLog 正确返回它),它不会引发错误。
我尝试使用 PHImageManger.requestImageDataForAsset 等。我得到了许多其他属性,如下所示,但位置。
请指教。