gpt4 book ai didi

ios - 使用 QLPreviewController 显示 ALAsset

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:43:11 24 4
gpt4 key购买 nike

我想使用 QLPreviewController 来显示照片流中的 ALAssetsQLPreviewController 需要一个 NSURL 来显示项目

当它是一个文件 URL 时效果很好,例如/var/mobile/Applications/5374......9E0/Documents/image33.png

我有 ALAsset但是使用 [[asset defaultRepresentation] url] 给我一个 NSURL 类型
assets-library://asset/asset.JPG?id=00000000-0000-0000-0000-000000000075&ext=JPG

但这不显示 QLPreviewController 只是一直显示正在加载 ??

有什么想法吗?提前致谢

最佳答案

也许不是最快和最有效的方法,但它解决了问题。请使用 NSFilemanager 而不是文档中的 NSTemporaryDirectory :-) 确保链接到 ImageIO.framework

    #import <ImageIO/ImageIO.h>

....
NSURL *outURLToUseWithQLPreviewController = nil;

ALAsset *myAsset = ... // received somehow
ALAssetRepresentation *represent = myAsset.defaultRepresentation;
CGImageRef representFullScreen = represent.fullScreenImage;

NSString *tempDir = NSTemporaryDirectory();
NSString *imagePath = [tempDir stringByAppendingPathComponent:represent.filename];
NSURL *tempURL = [NSURL fileURLWithPath:imagePath];

CGImageDestinationRef destination = CGImageDestinationCreateWithURL((__bridge CFURLRef)(tempURL), (__bridge CFStringRef)(represent.UTI), 1, NULL);
CGImageDestinationAddImage(destination, representFullScreen, nil);
if ( CGImageDestinationFinalize(destination) ) {
outURLToUseWithQLPreviewController = tempURL;
}
return outURLToUseWithQLPreviewController;

关于ios - 使用 QLPreviewController 显示 ALAsset,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14791869/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com