将NSString中的文件名转换为存储在资产库中的照片的UIImage



我已经使用以下代码获得了存储在资产库中的照片的原始文件名:

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方法。

希望这能有所帮助。

您无法通过路径或url从资产库中获取图像。在您的情况下,您需要使用UIImage*image=[UIImage imageWithCGImage:rep.fullResolutionImage];

或者fullScreenImage之类的。。。

最新更新