【发布时间】:2009-08-01 04:55:55
【问题描述】:
我想在视图控制器中将一些图像显示为缩略图,但我不知道该怎么做。如果可能的话,谁能给我一些想法或示例代码。
【问题讨论】:
-
您是否曾经投票/将答案标记为已接受??
标签: iphone objective-c
我想在视图控制器中将一些图像显示为缩略图,但我不知道该怎么做。如果可能的话,谁能给我一些想法或示例代码。
【问题讨论】:
标签: iphone objective-c
您是在问如何从较大的图像创建缩略图,还是在问如何构建一个可以很好地显示它们的视图控制器?
构建视图控制器:
您可以使用 the Three20 project (description) 中的 TTPhotoViewController,其作用类似于 iPhone 的内置相机胶卷来查看图像。
你可以看看来自苹果的the Scrolling sample code,在this question about using it for thumbnails中提到。
如果您想自己构建一个,您可以考虑使用the moriarty library 中的GridView,或者作为UIScrollView 中的一个大网格,或者在@987654335 中更有效地逐行使用@。 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 中的 Creating a Thumbnail Image from an Image Source 下看到一些有用的示例代码。
【讨论】:
缩略图存在多个问题;或许您可以澄清一下您最关心哪些问题?
如何显示现有图像的较小版本
如何通过缓存缩略图来加速分页(而不是仅仅动态缩小原件)
如何让用户翻阅缩略图
如果您的图像可编辑或用户可以添加到其中,如何将缩略图与原始图像同步
【讨论】: