【问题标题】:Display Image using asset path or local file path使用资产路径或本地文件路径显示图像
【发布时间】:2015-04-07 15:00:00
【问题描述】:

我正在尝试使用 swift 显示相机胶卷中的图像表。我有资产路径:

assets-library://asset/asset.JPG?id=123456789&ext=JPG

以及本地文件路径:

/Users/johndoe/Library/Developer/CoreSimulator/Devices/1932149090125/data/Containers/Data/Application/11451-54365436-34563-2345-232342364/Documents/asset.JPG

我不知道使用什么函数来创建 UIImage。

我尝试了UIImage(data: NSdata)UIImage(contentsOfFile: String),但均未成功。

代码: 在我的 UITableView、cellForRowAtIndexPath 函数中,我正在循环访问具有单元格的资产路径和本地文件路径的数据库。

let url = NSURL(string: "/Users/johndoe/Library/Developer/CoreSimulator/Devices/123455678/data/Containers/Data/Application/124536432342364/Documents/asset.JPG")
    let data = NSData(contentsOfURL: url!)
    cell.thumbnailImage.image = UIImage(data: data!)

【问题讨论】:

  • 你试过UIImage(named: "imageName")吗?
  • @bsarr007 哎呀,也忘了提到那个。感谢您指出了这一点。但是,是的,我也试过了。 “命名”似乎只适用于保存在我的目录中并且不从相机胶卷中提取的文件。除非我执行不正确

标签: ios image swift


【解决方案1】:

我正在尝试使用 swift 显示相机胶卷中的图像表

嗯,这是一项复杂的业务。你必须使用 PhotoKit。获取图片作为PHAsset,调用PHImageManager.defaultManager().requestImageForAsset获取实际图片。图像是异步到达的,随着图像质量的提高可以多次到达,所以你必须为此做好准备。

【讨论】:

  • 您应该观看关于 Photo Kit 的 WWDC 2014 视频以了解更多信息。
  • 啊,我明白了,所以我从 UIImagePickerController 收到的资产路径不够用。
  • UIImagePickerController 适用于在图像选择器控制器中选择的图像,因为它直接向您提供图像。但这不是你问的。如果你使用 UIImagePickerController,那么在didFinishPickingMediaWithInfo 你会得到info[UIImagePickerControllerOriginalImage]。但这不会让您获得“相机胶卷中的图像表”,这是您所要求的。
【解决方案2】:

有一个函数,当在 imagePickerController 中选择图片时调用该函数,见下文。确保您的 ViewController 使用 UIImagePickerControllerDelegate 协议。

然后在我的 .m 文件中,我拥有属于该协议的功能:

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { // 在每张照片之后来到这里,拍照或拾取

UIImage *img = [info objectForKey:@"UIImagePickerControllerOriginalImage"];

等等等等 }

【讨论】:

  • 我在 swift 中也看到了这一点:' photoImageView.image = info[UIImagePickerControllerOriginalImage] as? UIImage' 我想我的下一个问题是。你如何将我拥有的信息转换为 UIImagePickerControllerOriginalImage
猜你喜欢
  • 1970-01-01
  • 2020-02-10
  • 2014-05-01
  • 2022-10-05
  • 1970-01-01
  • 2023-03-31
  • 1970-01-01
  • 1970-01-01
  • 2012-05-22
相关资源
最近更新 更多