按宽度按比例调整 UIImage 的大小
Posted
技术标签:
【中文标题】按宽度按比例调整 UIImage 的大小【英文标题】:Proportionally resize UIImage by width 【发布时间】:2014-10-12 19:57:14 【问题描述】:我需要按宽度按比例调整UIImage
的大小,可能有人有工作代码吗?
例如:
输入:宽度:900 高度:675。调整为宽度:400 宽度
结果:宽度:400 高度:300
请帮忙..
【问题讨论】:
你试过什么?看看这个答案:***.com/a/537697/1066424 我没有“targetSize”,我只有宽度,没有高度 newHeight = newWidth / oldWidth * oldHeight 【参考方案1】:检查this blog post。特别是这两个文件:
UIImage+Resize.h UIImage+Resize.m也许这对你有用:
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 中一样的高度,当您设置新的图像尺寸并输入新的重量时,它会以编程方式显示新的高度.. 所以我需要一个公式.. 你有吗? 我编辑了我的答案以包含一个示例用法。希望它有所帮助。 targetHeight 不会是 size.height 的一个因素,而不是 size.width? @TahoeWolverine 不错。我已经更正了示例。【参考方案2】:你不能设置内容模式吗?到.ScaleAspectFill?然后您可以将 UIImageView 的大小设置为任意大小,并且将保留纵横比。
https://developer.apple.com/reference/uikit/uiviewcontentmode/1622518-scaleaspectfill
【讨论】:
太好了,谢谢!我从没想过检查……工作得很好。以上是关于按宽度按比例调整 UIImage 的大小的主要内容,如果未能解决你的问题,请参考以下文章
使 UIImageView 及其 UIImage 按比例缩放而无需额外的填充