我想在View控制器中将一些图像显示为缩略图,但我不知道该怎么做。如果可能的话,任何人都可以给我一些想法或示例代码。
答案 0 :(得分:36)
您是否在询问如何从较大的图像创建缩略图,或者如何构建一个能够很好地显示它们的视图控制器?
构建视图控制器:
您可以使用the Three20 project(description)中的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)
缩略图存在多个问题;也许你可以澄清哪些是你最关心的?
如何显示现有图像的较小版本
如何通过缓存缩略图来加快分页速度(而不是仅仅动态缩小原件)
如何允许用户翻阅缩略图
如果图片可编辑或用户可以添加缩略图,如何将缩略图与原稿同步