按照宽度等比例调整UIImage的大小

4

我需要按宽度等比例地调整UIImage的大小,可能有人有有效的代码吗?

例如:

输入:宽度为:900 高度为:675。将其缩小到宽度为:400。

结果:宽度为:400 高度为:300

请帮忙。。


你尝试过什么?看看这个答案:https://dev59.com/E3VC5IYBdhLWcg3wykUt#537697 - Aaron Wojnowski
我没有“targetSize”,我只有宽度,没有高度。 - LightNight
新高度 = 新宽度 / 旧宽度 * 旧高度 - Evan
2个回答

7
请查看这篇博客文章,尤其是以下两个文件: 也许对您有用:
UIImage *image = [UIImage imageNamed:@"SomeImage-900x675"]; // SomeImage-900x675.png
CGFloat targetWidth = 400.0f;

CGFloat scaleFactor = targetWidth / image.size.width;
CGFloat targetHeight = image.size.height * scaleFactor;
CGSize targetSize = CGSizeMake(targetWidth, targetHeight);

UIImage *scaledImage = [image resizedImage:targetSize interpolationQuality:kCGInterpolationHigh];

我需要像 Photoshop 一样的高度,当你设置图像的新尺寸并输入新的宽度时,它会自动计算出新的高度。 - LightNight
所以我需要一个公式...也许你有吗? - LightNight
我编辑了我的答案,加入了一个使用示例。希望它有所帮助。 - Damian Carrillo
targetHeight不应该是size.width的因素,而是size.height的因素吗? - TahoeWolverine
@TahoeWolverine 很好的发现。我已经更正了示例。 - Damian Carrillo

1

太好了,谢谢!我从没想过要检查那个...完美地运行了。 - Drew

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接