【发布时间】:2015-11-03 22:52:50
【问题描述】:
我在这里发现了一个类似的问题: iOS 8 (Swift) How do I get rid of this error: ImageIO: PNG zlib error? 但是有一些不同。
我从选择器中获得了PHAsset - 图像确实下载并正确显示(它使用PHCachingImageManager 类)。
但是,当我稍后尝试像这样从资产请求图像时:
[[PHImageManager defaultManager] requestImageForAsset:asset targetSize:AssetTargetSize
contentMode:PHImageContentModeAspectFit options:nil
resultHandler:^(UIImage * _Nullable result, NSDictionary * _Nullable info) {
if (result)
_image = result;
}
result 变量是一个指向 UIImage 对象的指针,但它无效 - 我无法将其转换为 NSData,也无法通过 xcode 快速查看。
在日志中我只收到以下消息:<Error>: ImageIO: PNG zlib error 仅此而已。
我尝试按照链接问题中的建议使请求同步,但没有任何区别。
PHAsset 指向的图像在照片应用程序和照片选择器中均可见。
【问题讨论】:
-
"我尝试按照建议使请求同步..." 您能否提供更新后的代码?能够查看您如何设置 AssetTargetSize... 也会有所帮助
-
@KickimusButticus 由于它不起作用,我将代码恢复为所写的内容(我更喜欢异步),但是它是通过创建选项类并将同步属性更改为 @ 987654329@。
AssetTargetSize是CGSize类型的静态常量,现在是硬编码的。这段代码大部分时间都有效,但是我得到了这个错误,没有任何图像的额外信息 - 但由于图像已加载到图像选择器中 - 我怀疑这是我的图像的问题 -
Camera.app 拍摄的所有方形图像都出现相同的错误
-
你有没有让这个工作?
-
@NateBirkholz 很遗憾没有。虽然我还没有在最新的 SDK 上测试过它,但它可能已被修复。虽然如果这个线程仍然受到点击我怀疑它..
标签: ios objective-c frameworks uiimage photosframework