我正在研究PHPhotoLibrary,在那里创建相册并将图像保存到其中。但是,保存到相册的图像也出现在相机胶卷以及我的照片流中。在自定义相册中显示照片,但不在相机角色/我的照片流中显示照片
我搜索了很多,没有发现实质性内容。
我写了一个功能如下,删除相机角色和我的照片流的照片。
-(void)cleanUpCameraRoll:(NSString *)localID
{
PHFetchResult *newlyCreatedAssetFetchResult = [PHAsset fetchAssetsWithLocalIdentifiers:@[localID] options:nil];
PHAsset *newlyCreatedAsset = [newlyCreatedAssetFetchResult firstObject];
//Get Camera Roll
PHFetchResult *result = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeSmartAlbum
subtype:PHAssetCollectionSubtypeSmartAlbumUserLibrary
options:nil];
PHAssetCollection *cameraRollCollection = result.firstObject;
//Get Photo Stream Album - PHAssetCollectionSubtypeAlbumMyPhotoStream
PHFetchResult *result2 = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeSmartAlbum
subtype:PHAssetCollectionSubtypeAlbumMyPhotoStream
options:nil];
PHAssetCollection *photoStreamCollection = result2.firstObject;
//*********************************
PHFetchResult *assetsCameraRoll = [PHAsset fetchAssetsInAssetCollection:cameraRollCollection options:nil];
for (PHAsset *asset in assetsCameraRoll) {
if ([asset.localIdentifier isEqualToString:localID]) {
DebugLog(@"Got newly created asset in camera roll");
break;
}
}
PHFetchResult *assetsPhotoStream = [PHAsset fetchAssetsInAssetCollection:photoStreamCollection options:nil];
for (PHAsset *asset in assetsPhotoStream) {
if ([asset.localIdentifier isEqualToString:localID]) {
DebugLog(@"Got newly created asset in photo stream");
break;
}
}
//*********************************
NSError *error;
[[PHPhotoLibrary sharedPhotoLibrary] performChangesAndWait:^{
//Remove from Camera Roll
PHAssetCollectionChangeRequest *changeRequest1 = [PHAssetCollectionChangeRequest changeRequestForAssetCollection:cameraRollCollection assets:newlyCreatedAssetFetchResult];
[changeRequest1 removeAssets:@[newlyCreatedAsset]];
PHAssetCollectionChangeRequest *changeRequest2 = [PHAssetCollectionChangeRequest changeRequestForAssetCollection:photoStreamCollection assets:newlyCreatedAssetFetchResult];
[changeRequest2 removeAssets:@[newlyCreatedAsset]];
} error:&error];
}
此代码执行好了,但我仍然看到的图像在两个地方。
所以,我得出的结论是,相册只是照片的逻辑分组,并且所有内容都位于相机角色和/或我的照片流中。是这样吗?
如果是,是否有任何方法(至少)使其隐藏在相机胶卷/照片流中?我想让照片仅在我的自定义相册中可见。
从互联网你节省?如果是这样,您可以使用图像元数据从相机胶卷中找到。 – karthikeyan
谢谢Karthik,您的回复。我正在获取图像信息。但是,我的问题是,我是否可以停止在相机胶卷中显示图像。 –
如果是自定义相机胶卷视图,则可以将其停止。有很多工作可以证实,我们之前做过类似的工作,喜欢从某张专辑停止播放。 – karthikeyan