我正在尝试使用
这是我的代码:
问题在于
我错过了什么?为什么
CGImageSourceCreateThumbnailAtIndex
来有效地创建调整大小的图像版本。我有一些现有的代码,可以对来自磁盘的图像进行此操作,现在我正在尝试使用来自ALAssetsLibrary
的图像。这是我的代码:
ALAsset *asset;
ALAssetRepresentation *representation = [asset defaultRepresentation];
CGImageRef imageRef = [representation fullResolutionImage];
CGDataProviderRef provider = CGImageGetDataProvider(imageRef);
CGImageSourceRef sourceRef = CGImageSourceCreateWithDataProvider(provider, NULL);
NSDictionary *resizeOptions = @{
kCGImageSourceCreateThumbnailWithTransform : @YES,
kCGImageSourceCreateThumbnailFromImageAlways : @YES,
kCGImageSourceThumbnailMaxPixelSize : @(2100)
};
CGImageRef resizedImage = CGImageSourceCreateThumbnailAtIndex(source, 0, resizeOptions);
问题在于
resizedImage
为空,而CGImageSourceGetCount(sourceRef)
返回0。虽然数据提供者中有很多数据,但数据似乎是有效的图像数据。这个ALAsset
来自iPhone 4S相机胶卷。我错过了什么?为什么
CGImageSourceCreateWithDataProvider()
会创建一个没有图像的图像源呢?