http://brian-erickson.com/uiimage-thumbnails-in-objective-c-for-the-iph
+ (UIImage *)generatePhotoThumbnail:(UIImage *)image {
// Create a thumbnail version of the image for the event object.
CGSize size = image.size;
CGSize croppedSize;
CGFloat ratio = 64.0;
CGFloat offsetX = 0.0;
CGFloat offsetY = 0.0;
// check the size of the image, we want to make it
// a square with sides the size of the smallest dimension
if (size.width > size.height) {
offsetX = (size.height - size.width) / 2;
croppedSize = CGSizeMake(size.height, size.height);
} else {
offsetY = (size.width - size.height) / 2;
croppedSize = CGSizeMake(size.width, size.width);
}
// Crop the image before resize
CGRect clippedRect = CGRectMake(offsetX * -1, offsetY * -1, croppedSize.width, croppedSize.height);
CGImageRef imageRef = CGImageCreateWithImageInRect([image CGImage], clippedRect);
// Done cropping
// Resize the image
CGRect rect = CGRectMake(0.0, 0.0, ratio, ratio);
UIGraphicsBeginImageContext(rect.size);
[[UIImage imageWithCGImage:imageRef] drawInRect:rect];
UIImage *thumbnail = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
// Done Resizing
return thumbnail;
}
或者
http://vocaro.com/trevor/blog/2009/10/12/resize-a-uiimage-the-right-way/
分享到:
相关推荐
缩略图的生成通常涉及UIImage的缩放和裁剪操作。我们可以使用UIImage的`resizedImage(withSize:)`方法来调整图像的大小,以适应预设的缩略图尺寸。为了保持图像比例,我们可能需要先计算图像的宽高比,然后根据这个...
接下来,我们探讨“缩略图”这一概念。在很多情况下,我们可能需要显示大图的缩略版本,以节省屏幕空间或提高加载速度。使用`resizableImage(withCapInsets:)`或`resizableImage(withCapInsets:resizingMode:)`方法...
当使用这个方法时,有时可能出现缩略图可见但原图丢失的情况。确保传入的是`UIImage`类型的实例,并且注意不要保存过大的图片,以防止内存问题导致程序崩溃。 ```swift func saveImageToPhotosAlbum(image: UIImage...
在`tableView:cellForRowAtIndexPath:`中,根据`ALAsset`对象创建并配置UITableViewCell,显示图片缩略图。 ```swift func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> ...
但是,如果图片过大,可能会导致保存失败或者在相册中只显示缩略图。因此,在使用这个方法时,要确保图片大小适中,避免内存问题导致的崩溃。 若希望在应用启动时自动显示之前保存的图片,可以使用`NSData`的`...
偶尔会出现只显示缩略图而无法查看原图的问题,可能是因为图片过大导致的内存问题。确保图片大小适中,避免程序崩溃。正确调用`UIImageWriteToSavedPhotosAlbum`,传入`UIImage`对象和代理方法,以便在保存成功或...
- 图片加载速度:如果图片较大,可以考虑先加载缩略图,点击后再加载全尺寸图片。 - 图片格式支持:确保你的代码能处理各种常见的图片格式,如JPEG、PNG、GIF等。 - 缓存策略:对于网络图片,可以考虑使用缓存来提高...
可以采用延迟加载、按需加载、缩略图预览等策略来优化性能。此外,还可以使用如`SDWebImage`这样的第三方库来帮助处理图片加载和缓存。 8. **响应式布局**: 考虑到不同设备的屏幕尺寸和分辨率,确保图片在各种设备...
5. **原图与缩略图切换**:这一特性需要图片处理库,例如使用UIImage的imageWithContentsOfFile:方法加载原图,而缩略图可能是通过提前生成的低分辨率版本。 6. **自适应布局**:为了适应不同的设备屏幕尺寸,项目...
若要保存截图到相册,只需轻点该缩略图,然后点击右下角的“保存”图标即可。如果你错过了这个机会,可以在照片应用中找到最近的截图。 然而,苹果并未提供官方API来实现自定义截图范围,但开发者可以通过Quartz 2D...
可以使用缩略图来减少内存占用,只在用户选择查看大图时才加载原图。此外,合理利用GCD(Grand Central Dispatch)进行异步操作,避免阻塞主线程。 8. **压力测试**:对应用进行性能测试,确保在极端情况下(如7P大...
CollectionView的Cell可以定制为每本书的缩略图,同时配合手势识别,实现翻页或选择功能。 5. **定制Cell和View**:为了达到“超炫”的效果,开发者可能使用了自定义UITableViewCell和UICollectionViewCell,添加...
例如,可以使用缩略图来预览图像,仅在裁剪时加载全分辨率图像。 10. **代码组织**:MMSCropImageView作为一个自定义视图,应该遵循良好的代码组织原则,如封装和模块化,以提高可维护性和可重用性。 在提供的资源...