[英]ios - Photo duplicated when adding to an album using PHAssetChangeRequest
使用PHAssetChangeRequest將照片添加到相冊時,照片會在相機膠卷中復制,而不僅僅是將現有照片添加到相冊。 有人遇到過這個問題嗎? 我們要做的就是將現有照片添加到相冊中。
謝謝
豐富
更新以刪除不同的版本,以顯示使用重復版本的版本,更易於閱讀<<
// Save to the album
[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
NSLog(@"Here 1");
NSData *imageData = UIImageJPEGRepresentation(imTransfer, 0);
NSLog(@"Here 2");
PHAssetChangeRequest *assetRequest = [PHAssetChangeRequest creationRequestForAssetFromImage:[UIImage imageWithData:imageData]];
placeholder = [assetRequest placeholderForCreatedAsset];
NSLog(@"Here 3");
photosAsset = [PHAsset fetchAssetsInAssetCollection:collection options:nil];
PHAssetCollectionChangeRequest *albumChangeRequest = [PHAssetCollectionChangeRequest changeRequestForAssetCollection:collection
assets:photosAsset];
NSLog(@"Here 4");
[albumChangeRequest addAssets:@[placeholder]];
} completionHandler:^(BOOL success, NSError *error) {
if (success)
{
NSLog(@"SUCCESS!!!!");
}
else
{
NSLog(@"%@", error);
}
}];
您正在創建新資產。 如果要使用相機膠卷中的現有照片,則不應這樣做。
我假設您正在使用UIImagePickerController選擇照片。 以下是從相機膠卷獲取圖像資產詳細信息並將其添加到自定義集合的代碼:
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info
{
[picker dismissViewControllerAnimated:YES completion:nil];
//Custom function to get custom album
PHAssetCollection *collection = [self getMyAlbum];
NSError *error;
__block NSString *localID;
PHAsset *asset;
if (info[UIImagePickerControllerReferenceURL]) {
NSURL *imageUrl = info[UIImagePickerControllerReferenceURL];
PHFetchResult *imageFetchResult = [PHAsset fetchAssetsWithALAssetURLs:@[imageUrl] options:nil];
asset = [imageFetchResult firstObject];
localID = [asset localIdentifier];
}
if(localID) {
[[PHPhotoLibrary sharedPhotoLibrary] performChangesAndWait:^{
PHAssetCollectionChangeRequest *changeRequest = [PHAssetCollectionChangeRequest changeRequestForAssetCollection:collection];
[changeRequest addAssets:@[asset]];
} error:&error];
}
}
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.