【问题标题】:Download Image with AFHTTP and save it to ALAsset使用 AFHTTP 下载图像并将其保存到 ALAsset
【发布时间】:2014-01-04 09:04:20
【问题描述】:

有人知道如何将图像保存到资源库吗?我知道将其保存到资产中,该图像也将在 iPad 的图库中可用。

我知道如何获取文件:

AFHTTPRequestOperation *requestOperation = [[AFHTTPRequestOperation alloc] initWithRequest:downloadRequest];

[requestOperation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {

// How to make the filepath? 
operation.outputStream = [NSOutputStream outputStreamToFileAtPath:filePath append:NO];
[operation.responseData writeToFile:filePath atomically:YES];
}

【问题讨论】:

    标签: ios alassetslibrary afhttpclient


    【解决方案1】:

    为了将图像写入资产库,您可以使用以下三种方法中的任何一种(在类ALAssetsLibrary中定义):

    – writeImageToSavedPhotosAlbum:orientation:completionBlock:
    – writeImageDataToSavedPhotosAlbum:metadata:completionBlock:
    – writeImageToSavedPhotosAlbum:metadata:completionBlock:
    

    这要求您的图像表示为UIImageCGImageRefNSData 对象。

    例如,您可以使用与临时文件关联的NSOutputStream 来保存图像。然后,使用该文件创建并初始化UIImage,并使用上述方法将其写入资产库。

    或者,将图像加载为 NSData 对象(如果它很好地适合内存)并再次使用上述适当的方法以及元信息。

    另请参阅:ALAssetsLibrary Class Reference

    编辑:

    如果您想了解有关如何设置元数据参数的更多信息,您可能会发现这篇博文很有价值:Adding metadata to iOS images the easy way

    如果您想在 SO 上将地理位置添加到您的图像元数据中:Saving Geotag info with photo on iOS4.1

    【讨论】:

    • 好问题 ;) AV Foundation 对“元数据”更加具体,但在 AL 中却相当模糊。您可以查看 Apple 示例“SquareCam”中的示例文件“SquareCamViewController.m”并尝试推断出它可能是什么。
    • 嗯,应该清楚的是,图像的元数据通常称为“EXIF”数据(可交换图像文件格式)。但我不知道如何为表示元数据的 Dictionary 设置键和值。另请参阅有关 EXIF 的 wiki 文章:Exchangeable image file format
    • 啊,在 Apple 文档中挖掘“EXIF”之后,您可能会在“CGImageProperties Reference”中找到有关“EXIF 字典键”的有价值信息。
    猜你喜欢
    • 1970-01-01
    • 2013-04-16
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 2016-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多