gpt4 book ai didi

objective-c - 你可以在 iOS 上调整 UIImage 的大小同时保持比例吗?用于生成缩略图

转载 作者:行者123 更新时间:2023-12-01 19:19:19 26 4
gpt4 key购买 nike

我的应用程序处理从相机拍摄的图像。我希望能够将这些图像调整为缩略图大小,以便可以在表格 View 的单元格内显示它们。

“动态”调整大小似乎相当慢,所以我计划在用户将它们导入应用程序时调整它们的大小,并将完整大小和缩略图存储在我的业务对象上,将缩略图用于表格 View 之类的东西

这是我用于生成缩略图的代码:

#import "ImageUtils.h"

@implementation ImageUtils

+(UIImage*) generateThumbnailFromImage:(UIImage*)theImage
{
UIImage * thumbnail;
CGSize destinationSize = CGSizeMake(100,100);

UIGraphicsBeginImageContext(destinationSize);
[theImage drawInRect:CGRectMake(0,0,destinationSize.width, destinationSize.height)];
thumbnail = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

return thumbnail;
}

@end

虽然这似乎可以正确调整图像大小,并大大提高了我的表格的响应能力,但图像的缩放比例是关闭的。

以上将创建一个 100 * 100 的 UIImage,如何强制它使用 AspectFit 或 AspectFill 方法?

我的表格单元格上的 UIImageView 是 100 * 100,所以我需要调整图像的大小以适应它,而不会扭曲它。

任何指针都会很棒!

最佳答案

我意识到这是一个旧线程,但是如果你偶然发现这个,现在 iOS6 中有一个更简单的方法。在我在 Apple 的文档中找到以下内容之前,我在尝试使用此解决方案时浪费了很多时间。

使用任一:

+ (UIImage *)imageWithCGImage:(CGImageRef)imageRef 
scale:(CGFloat)scale
orientation:(UIImageOrientation)orientation

或者
+ (UIImage *)imageWithCIImage:(CIImage *)ciImage
scale:(CGFloat)scale
orientation:(UIImageOrientation)orientation

如果您想使用它从名为“image”的 UIImage 制作缩略图,可以使用一行代码:
UIImage *thumbnail = [UIImage imageWithCGImage:image.cgImage
scale:someScale
orientation:image.imageOrientation];

我发现大于 1 的数字会缩小图像,小于 1 的数字会扩大图像。它必须使用比例作为基础大小属性的分母。

确保导入必要的框架!

关于objective-c - 你可以在 iOS 上调整 UIImage 的大小同时保持比例吗?用于生成缩略图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11116186/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com