簡體   English   中英

如何使用PHPhotoLibrary將圖像導出到手機圖庫

[英]How to export image to phone gallery using PHPhotoLibrary

要將圖像導出到手機庫,我嘗試使用ALAssetsLibrary,但Xcode 8.0告訴我該方法已棄用,我應該使用PHPhotoLibrary。 當我使用ALAssetsLibrary時,方法看起來像這樣:

#import <AssetsLibrary/AssetsLibrary.h>
-(void)exportToGallery{
  ALAssetsLibrary *assetsLib = [ALAssetsLibrary new];
  [assetsLib writeImageToSavedPhotosAlbum:image
  metadata:[image properties];
  completionBlock:nil;
}

如何使用PHPhotoLibrary獲得相同的效果?

有辦法做到這一點。

目標C.

導入照片框架

#import <Photos/Photos.h>

然后制作你的形象

UIImage * image = [UIImage imageNamed:@"DP.jpg"];

然后保存圖像。 圖像將保存到相機膠卷
這與writeImageToSavedPhotosAlbumALAssetsLibrary相同

[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
        [PHAssetChangeRequest creationRequestForAssetFromImage:image];
    } completionHandler:^(BOOL success, NSError *error) {
        if (success) {
            NSLog(@"Image Saved");
        }
        else {
            NSLog(@"error in saving image : %@",error);
        }
    }];

確保照片權限為ON 此外,如果您已創建Xcode 8的項目,則需要在Info.plist添加一個鍵

<key>NSPhotoLibraryUsageDescription</key>
<string>Use Photos</string>

您還可以使用creationRequestForAssetFromImage方法,不僅可以使用UIImage,還可以使用圖像URL。

這些是您可以從Photos Framework使用的方法。

+ (instancetype)creationRequestForAssetFromImage:(UIImage *)image;
+ (nullable instancetype)creationRequestForAssetFromImageAtFileURL:(NSURL *)fileURL;
+ (nullable instancetype)creationRequestForAssetFromVideoAtFileURL:(NSURL *)fileURL;

Swift 3.0

let image = UIImage(named: "DP.jpg")
PHPhotoLibrary.shared().performChanges({ 
    PHAssetChangeRequest.creationRequestForAsset(from: image!)
}) { (success:Bool, error:Error?) in
    if success {
        print("Image Saved Successfully")
    } else {
        print("Error in saving:"+error.debugDescription)
    }
}

Photos Framework for Swift的其他方法是:

open class func creationRequestForAsset(from image: UIImage) -> Self
open class func creationRequestForAssetFromImage(atFileURL fileURL: URL) -> Self?
open class func creationRequestForAssetFromVideo(atFileURL fileURL: URL) -> Self?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM