我在许多帖子中看到通过保持纵横比来调整图像大小。这些函数在调整大小时使用 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 - UITableViewCell 分隔符在 iOS7 中消失
objective-c - xcode4中框架和静态库的区别,以及如何调用它们
iphone - 在 iPhone TableView 单元格的单元格右侧添加小箭头
ios - 如何调整 UIButton 的 imageSize?
ios - 获取 UITableViewCell 内的按钮单击
ios - 如何在 View 出现之前滚动到 iPhone 上 UITableView 的底部