iphone - 通过保持纵横比和宽度调整 UIImage 的大小

我在许多帖子中看到通过保持纵横比来调整图像大小。这些函数在调整大小时使用 RECT 的固定点(宽度和高度)。但是在我的项目中,我需要单独根据宽度调整 View 大小,高度应该根据纵横比自动获取。 任何人都可以帮助我实现这一目标。

最佳答案

如果您知道新尺寸的高度宽度,Srikar 的方法非常有效。 例如,如果您只知道要缩放到的宽度而不关心高度,则首先必须计算高度的比例因子。

+(UIImage*)imageWithImage: (UIImage*) sourceImage scaledToWidth: (float) i_width
{
    float oldWidth = sourceImage.size.width;
    float scaleFactor = i_width / oldWidth;

    float newHeight = sourceImage.size.height * scaleFactor;
    float newWidth = oldWidth * scaleFactor;

    UIGraphicsBeginImageContext(CGSizeMake(newWidth, newHeight));
    [sourceImage drawInRect:CGRectMake(0, 0, newWidth, newHeight)];
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();    
    UIGraphicsEndImageContext();
    return newImage;
}

https://stackoverflow.com/questions/7645454/

相关文章:

objective-c - 从 NSString 中删除所有空格

ios - 如何截取 UIView 的屏幕截图?

ios - UITableViewCell 分隔符在 iOS7 中消失

objective-c - xcode4中框架和静态库的区别,以及如何调用它们

iphone - 在 iPhone TableView 单元格的单元格右侧添加小箭头

ios - 如何调整 UIButton 的 imageSize?

ios - 获取 UITableViewCell 内的按钮单击

ios - 如何在 View 出现之前滚动到 iPhone 上 UITableView 的底部

ios - 我可以更改 NSLayoutConstraint 的乘数属性吗?

ios - 如何以简单的方式将 CGPoint 对象添加到 NSArray?