在iPhone中显示从ALAsset检索到的URL图像

在iPhone中显示从ALAsset检索到的URL图像

我使用ALAssetFramework访问设备照片库中的文件。

到目前为止,我能够访问缩略图并显示它。
我想在图像视图中显示实际的图像,但是我想不出如何做到这一点。

我尝试在ALAsset对象中使用URL字段,但没有成功。

有人知道怎么做吗?

下面是一些我能够访问缩略图并将其放在表格单元格中的代码:

- (UITableViewCell *)tableView:(UITableView *)tableView 
         cellForRowAtIndexPath:(NSIndexPath *)indexPath {


  static NSString *CellIdentifier = @"Cell";

  UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
  if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
  }
  //here 'asset' represents the ALAsset object


  asset = [assets objectAtIndex:indexPath.row];
       //i am accessing the thumbnail here
  [cell.imageView setImage:[UIImage imageWithCGImage:[asset thumbnail]]];
  [cell.textLabel setText:[NSString stringWithFormat:@"Photo %d", indexPath.row+1]];

  return cell;}


呼啦一阵风
浏览 552回答 3
3回答

有只小跳蛙

对于某些人来说,一件有用的事情是同时包含图像定向和缩放元数据。您可以在结果块中这样做,如下所示:ALAssetsLibraryAssetForURLResultBlock resultblock = ^(ALAsset *myasset){     ALAssetRepresentation *rep = [myasset defaultRepresentation];     CGImageRef iref = [rep fullResolutionImage];     if (iref)      {         UIImage *largeimage = [UIImage imageWithCGImage:iref scale:[rep scale] orientation:[rep orientation]];         [delegate hiresImageAvailable:large];     }};这个imageWIthCGImage在这种情况下呼叫有规模和orientation创建UIImage为了你。[UIImage imageWithCGImage:iref scale:[rep scale] orientation:[rep orientation]];需要注意的一个技巧是,如果你使用[rep fullScreenImage]而不是[rep fullResolutionImage]在iOS 5上,你会得到一张已经旋转的图像-不过它是iPhone屏幕的分辨率-也就是说,它的分辨率较低。

元芳怎么了

把Warren和OKnox的答案组合成一个简短的片段:ALAssetsLibrary *assetsLibrary = [[ALAssetsLibrary alloc] init];[assetsLibrary assetForURL:self.selectedPhotos[i] resultBlock: ^(ALAsset *asset){     ALAssetRepresentation *representation = [asset defaultRepresentation];     CGImageRef imageRef = [representation fullResolutionImage];     if (imageRef) {         UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];         imageView.image = [UIImage imageWithCGImage:imageRef scale:representation.scale orientation:representation.orientation];         // ...     }} failureBlock: ^{     // Handle failure.}];我个人喜欢把我的failureBlock到nil.
打开App,查看更多内容
随时随地看视频慕课网APP