objective-c - 将 NSString 中的文件名转换为 UIImage 以获取存储在 Assets 库中的照片

标签 objective-c ios nsstring uiimage alassetslibrary

我已经设法使用以下代码获取存储在 Assets 库中的照片的原始文件名:

NSURL *url = [[NSURL alloc] initWithString:project.photo];
        ALAssetsLibrary* library = [[ALAssetsLibrary alloc] init];

        [library assetForURL:url resultBlock:^(ALAsset *asset) {

            ALAssetRepresentation *rep = [asset defaultRepresentation];

            _filename = [rep filename];
            NSLog(@"filename for image is: %@", _filename);

            if (_filename != nil)
            {

                UIImage *image = [UIImage imageWithContentsOfFile:_filename];
                NSLog(@"image is! %f", image.size.height);

                [image drawInRect:CGRectMake( (pageSize.width - image.size.width/2)/2, 350, image.size.width/2, image.size.height/2)];

            }

NSString 变量 _filepath 将图像的原始文件路径存储为:

IMG_0294.JPG

我想做的就是从照片库中获取这张图片,然后使用以下代码将其绘制到 pdf 文档中:

        [image drawInRect:CGRectMake( (pageSize.width - image.size.width/2)/2, 350, image.size.width/2, image.size.height/2)];

这个绘制代码绝对有效,因为我已经用存储在应用程序目录中的图像进行了尝试。我只需要找到一种使用文件路径创建 UIImage 或将其指向该照片的完整目录的方法。

图像变量在输出到控制台时返回为 null。

任何帮助都会很棒。

最佳答案

我建议您获取照片的 url 而不仅仅是 filename:

imageURL = [rep url];

您可以将此 imageURLALAssetsLibrary 方法 assetForURL:resultBlock:failureBlock: 结合使用来创建 UIImage。

有很多示例代码展示了如何使用 assetForURL 方法。

希望这对您有所帮助。

关于objective-c - 将 NSString 中的文件名转换为 UIImage 以获取存储在 Assets 库中的照片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9983355/

相关文章:

ios - 如果在线更改数据,则更新 tableview

iphone - CoreLocation 精度问题

ios - Realm - 列表与结果。速度和尺寸

android - 无法从 cordova cli 为 iOS 构建项目

Objective-C 如何为 float 打印出前导 0?

iphone - 使用协议(protocol)和委托(delegate)在 View Controller 之间传递数据

regex - Swift:无法将值类型字符串转换为预期的参数类型 nsmutablestring

objective-c - 如何在 Objective-C 中使用 XMLHttpRequest?

objective-c - 在不应该发生的时候双重释放

ios - SwiftUI:以编程方式关闭工作表