gpt4 book ai didi

ios - 如何将图像从 Assets 库移动到应用程序特定的私有(private)位置?

转载 作者:可可西里 更新时间:2023-11-01 04:36:16 25 4
gpt4 key购买 nike

这是我试过的代码片段:

[library    writeImageToSavedPhotosAlbum:self.checkInImage.CGImage metadata:self.metadata
completionBlock :^(NSURL * assetURL, NSError * error) {
NSLog (@"Asset url = %@", assetURL);
NSError *err;
NSString *docDir = [NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *jpgFilePath = [NSString stringWithFormat:@"%@/test.jpg", docDir];
NSFileManager *fileManager = [NSFileManager defaultManager];
[fileManager moveItemAtURL:assetURL toURL:[NSURL URLWithString:jpgFilePath] error:&err];
NSLog(@"error is %@", err);
}];

我得到的错误是Error Domain=NSCocoaErrorDomain Code=262 “操作无法完成。(Cocoa 错误 262。)” UserInfo=0xb49a680 {NSURL=assets-library://asset/asset.JPG?id=6FAC823A-33CB-489B-A125 -714FBA5F0EE8&ext=JPG

有什么想法吗?

最佳答案

Docs (and Google).此错误代码对应于 NSFileReadUnsupportedSchemeError 常量 - i。 e.您不能只使用 assets-library:// URL 来使用 NSFileManager 移动文件。 (关于 ipod-library:// URL 的情况也是如此。)您必须使用 AssetsLibrary 框架来获取文件的数据,然后将其写入文件使用 - [NSData writeToFile:atomically:]

ALAssetsLibrary *lib = [ALAssetsLibrary new];
[lib assetForUrl:theURL // the asset URL you have obtained, NSURL object
resultBlock:^(ALAsset *asset) {
// get data
ALAssetRepresentation *repr = [asset defaultRepresentation];
CGImageRef cgImg = [repr fullResolutionImage];
NSString *fname = [repr fileName];
UIImage *img = [UIImage imageWithCGImage:cgImg];
NSData *data = UIImagePNGRepresentation(img);
[data writeToFile:[@"BaseDirectory/" stringByAppendingPathComponent:fname]
atomically:YES];
[lib release];
}
failureBlock:^(NSError *error) {
// recover from error, then
[lib release];
}];

关于ios - 如何将图像从 Assets 库移动到应用程序特定的私有(private)位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12337099/

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