将 NSString 中的文件名转换为 UIImage 以获取存储在资产库中的照片
Posted
技术标签:
【中文标题】将 NSString 中的文件名转换为 UIImage 以获取存储在资产库中的照片【英文标题】:Convert filename in NSString to UIImage for photo stored in asset library 【发布时间】:2012-04-02 20:28:22 【问题描述】:我已经设法使用以下代码获取存储在资产库中的照片的原始文件名:
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。
任何帮助都会很棒。
【问题讨论】:
【参考方案1】:我建议你抓住照片的url
而不仅仅是filename
:
imageURL = [rep url];
您可以将此imageURL
与ALAssetsLibrary
方法assetForURL:resultBlock:failureBlock:
一起使用来创建UIImage。
有很多示例代码展示了如何使用assetForURL
方法。
希望这会有所帮助。
【讨论】:
【参考方案2】:您无法通过路径或 url 从资产库中获取图像。在您的情况下,您需要使用 UIImage *image = [UIImage imageWithCGImage:rep.fullResolutionImage];
或 fullScreenImage 或其他...
【讨论】:
以上是关于将 NSString 中的文件名转换为 UIImage 以获取存储在资产库中的照片的主要内容,如果未能解决你的问题,请参考以下文章