【问题标题】:Setting a UIImageView with ALAsset使用 ALAsset 设置 UIImageView
【发布时间】:2011-02-21 11:35:21
【问题描述】:

我有一个 UIImageView,想将它设置为 ALAsset 的内容。

ALAssets 内容是如何用于设置 UIImage 的?

【问题讨论】:

    标签: iphone alasset


    【解决方案1】:

    试试这个。顺便说一下,资产是 ALAsset。

    UIImage *image = [UIImage imageWithCGImage:[asset thumbnail] scale:1.0 orientation:[[asset defaultRepresentation] orientation]]
    
    UIImageView *image_view = [[UIImageView alloc] initWithImage:image]
    

    【讨论】:

    • ALAsset 不响应方向,您必须这样做:[[result valueForProperty:@"ALAssetPropertyOrientation"] intValue] 它仍然返回 ALAssetOrientation,而不是 UIImageOrientation,我不确定如果他们有共同的价值观。将该 UIImage 设置为 UIImageView 后,什么都没有显示...
    • ALAssetRepresentation(这是-defaultRepresentation 返回的内容)响应-orientation
    【解决方案2】:

    正如 Clayton 和 Aaron Brager 所说,关键是 UIImage 类的 imageWithCGImage 方法。

    获取图片内容有两种方式:

    • asset.thumbnail 或asset.aspectThumbnail
    • 通过资产展示
      • UTI 有默认演示和演示
      • CGImage 准备好了
        • CGImageWithOptions、fullResolutionImage、fullScreenImage
      • 原始数据
        • getBytes:fromOffset:length:error:
        • (如果要保留EXIF等,请使用imageWithData而不是imageWithCGImage)

    您可以参考http://developer.apple.com/library/ios/#documentation/AssetsLibrary/Reference/ALAssetRepresentation_Class/Reference/Reference.html#//apple_ref/doc/c_ref/ALAssetRepresentation了解更多详情。

    【讨论】:

      【解决方案3】:
      ALAssetRepresentation *rep = [self defaultRepresentation];
      UIImage *image = [UIImage imageWithCGImage:[rep fullScreenImage]];
      

      【讨论】:

      • 我在 iPhone 6 上一次选择 6 张照片时收到内存警告
      猜你喜欢
      • 1970-01-01
      • 2014-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-10
      • 2019-11-05
      • 2011-02-11
      • 1970-01-01
      相关资源
      最近更新 更多