图像的缩略图视图

时间:2009-08-01 04:55:56

标签: iphone objective-c

我想在View控制器中将一些图像显示为缩略图,但我不知道该怎么做。如果可能的话,任何人都可以给我一些想法或示例代码。

2 个答案:

答案 0 :(得分:36)

您是否在询问如何从较大的图像创建缩略图,或者如何构建一个能够很好地显示它们的视图控制器?

构建视图控制器:

您可以使用the Three20 projectdescription)中的TTPhotoViewController,其行为类似于iPhone的内置相机胶卷,以便查看图像。

您可以查看the Scrolling sample code中提到的来自苹果的this question about using it for thumbnails

如果您想自己构建一个,可以考虑使用GridView中的the moriarty library,作为UIScrollView中的大网格,或者更有效的行 - { - 3}} UITableView中的行基础。在optimized image loading in a UIScrollView上有一个上一个问题。

从较大的图片创建缩略图:

缩放图片的代码最简单的方法是将其显示在UIImageView中,框架设置为您想要的较小尺寸 - 它会缩放给您。

如果要保存缩略图或关注内存使用情况,可以创建硬盘版本。以下示例代码取自this blog post,可以作为类别方法添加到UIImage

- (UIImage*) imageScaledToSize: (CGSize) newSize {
  UIGraphicsBeginImageContext(newSize);
  [self drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
  UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
  UIGraphicsEndImageContext();

  return newImage;
}

最后,这是masking out round corners on an image上的上一个问题,类似于主屏幕上使用的应用图标。

使用图片的内置缩略图:

有一个很好的函数叫CGImageSourceCreateThumbnailAtIndex,可以理解某些图像数据格式的内置缩略图。您可以在Apple的the Image I/O Programming Guide中的从图像源创建缩略图图像下看到一些有用的示例代码。

答案 1 :(得分:0)

缩略图存在多个问题;也许你可以澄清哪些是你最关心的?

  1. 如何显示现有图像的较小版本

  2. 如何通过缓存缩略图来加快分页速度(而不是仅仅动态缩小原件)

  3. 如何允许用户翻阅缩略图

  4. 如果图片可编辑或用户可以添加缩略图,如何将缩略图与原稿同步