- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
我的主要问题是我需要获取 ALAsset 对象的缩略图。
我尝试了很多解决方案并搜索了数天的堆栈溢出,由于这些限制,我发现的所有解决方案都不适合我:
这是我附带的代码的最后一次迭代:
#import <AssetsLibrary/ALAsset.h>
#import <ImageIO/ImageIO.h>
// ...
ALAsset *asset;
// ...
ALAssetRepresentation *assetRepresentation = [asset defaultRepresentation];
NSDictionary *thumbnailOptions = [NSDictionary dictionaryWithObjectsAndKeys:
(id)kCFBooleanTrue, kCGImageSourceCreateThumbnailWithTransform,
(id)kCFBooleanTrue, kCGImageSourceCreateThumbnailFromImageAlways,
(id)[NSNumber numberWithFloat:200], kCGImageSourceThumbnailMaxPixelSize,
nil];
CGImageRef generatedThumbnail = [assetRepresentation CGImageWithOptions:thumbnailOptions];
UIImage *thumbnailImage = [UIImage imageWithCGImage:generatedThumbnail];
问题是,生成的 CGImageRef
既不按方向变换,也不按指定的最大像素大小进行变换;
我还尝试找到一种使用 CGImageSource
调整大小的方法,但是:
CGImageSourceCreateWithURL:
中使用;ALAsset
中提取信息或 ALAssetRepresentation
一个CGDataProviderRef
与 CGImageSourceCreateWithDataProvider:
一起使用;CGImageSourceCreateWithData:
需要我将全分辨率或全屏 Assets 存储在内存中才能工作。我错过了什么吗?
是否有另一种方法可以从 ALAsset
获取自定义缩略图?或 ALAssetRepresentation
我错过了什么?
提前致谢。
最佳答案
您可以使用 CGImageSourceCreateThumbnailAtIndex
从可能较大的图像源创建小图像。您可以使用 ALAssetRepresentation
的 getBytes:fromOffset:length:error:
方法从磁盘加载图像,并使用它来创建 CGImageSourceRef。
然后你只需要将 kCGImageSourceThumbnailMaxPixelSize
和 kCGImageSourceCreateThumbnailFromImageAlways
选项与你创建的图像源一起传递给 CGImageSourceCreateThumbnailAtIndex
,它将创建为您提供较小的版本,而无需将大版本加载到内存中。
关于ios - 从 ALAssetRepresentation 生成自定义缩略图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11765340/
我有一个具有可变数量子元素的固定大小的 div。我不知道 children 的大小。目标是缩小它们以适合父级。 例子: .parent { width: 100px; height: 100p
我是一名优秀的程序员,十分优秀!