首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用PHPhotoLibrary将图像导出到电话图库

如何使用PHPhotoLibrary将图像导出到电话图库
EN

Stack Overflow用户
提问于 2016-10-03 14:52:12
回答 1查看 1.7K关注 0票数 1

为了将图像导出到电话库,我尝试使用ALAssetsLibrary,但是Xcode 8.0告诉我,这个方法是不推荐的,我应该使用PHPhotoLibrary。当我使用ALAssetsLibrary时,方法如下所示:

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

我如何使用PHPhotoLibrary来产生同样的效果?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-03 16:27:51

有办法做到这一点。

目标C

导入Photos框架

代码语言:javascript
复制
#import <Photos/Photos.h>

那就把你的形象

代码语言:javascript
复制
UIImage * image = [UIImage imageNamed:@"DP.jpg"];

那就保存图像。该图像将保存到相机辊

这将与writeImageToSavedPhotosAlbum of ALAssetsLibrary一样工作。

代码语言:javascript
复制
[[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中添加一个键。

代码语言:javascript
复制
<key>NSPhotoLibraryUsageDescription</key>
<string>Use Photos</string>

您还可以使用creationRequestForAssetFromImage方法,不仅与UIImage制作,而且也与图像URL。

这些是您可以从Photos 中使用的方法。

代码语言:javascript
复制
+ (instancetype)creationRequestForAssetFromImage:(UIImage *)image;
+ (nullable instancetype)creationRequestForAssetFromImageAtFileURL:(NSURL *)fileURL;
+ (nullable instancetype)creationRequestForAssetFromVideoAtFileURL:(NSURL *)fileURL;

Swift 3.0

代码语言:javascript
复制
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)
    }
}

用于Swift的Photos 的其他方法有:

代码语言:javascript
复制
open class func creationRequestForAsset(from image: UIImage) -> Self
open class func creationRequestForAssetFromImage(atFileURL fileURL: URL) -> Self?
open class func creationRequestForAssetFromVideo(atFileURL fileURL: URL) -> Self?
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39834482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档