在 AspectFit 之后获取 UIImage 的维度或 CGRect

Posted

技术标签:

【中文标题】在 AspectFit 之后获取 UIImage 的维度或 CGRect【英文标题】:Get dimension or CGRect of UIImage after AspectFit 【发布时间】:2017-03-31 08:32:31 【问题描述】:

我只是在寻找适合图像视图的图像大小的方法。但没有得到任何正确的方法来获得图像尺寸。 我只是想计算imageview和imageview中实际图像的差异。请指教。

【问题讨论】:

您的图片是从后端服务加载的?或者是本地资源 查看下面的链接,它可能对您有用***.com/a/6284498/5184217 【参考方案1】:

实际上,当显示图像时,它的大小(图像的实例)不会改变,除非您调用压缩图像函数。

唯一的问题是它是如何在 ImageView 上绘制的。 当您对 imageview 使用宽高比时,图像会根据 ImageView 的宽度和高度中较大的一个来保持其宽度和高度之间的比率。

那么,上面@Luan Tran 展示了如何计算绘制的图像大小。

谢谢

希望对你有帮助

【讨论】:

让我试试这个【参考方案2】:

你可以用这个

 CGSize imageViewSize = imageView.bounds.size;
 CGSize imageSize = image.size;
 CGFloat minFactor = imageViewSize.width / imageSize.width;
 if (imageViewSize.height / imageSize.height < minFactor) 
 
     minFactor = imageViewSize.height / imageSize.height;
 

 CGSize resultSize = CGSizeMake(minFactor * imageSize.width, minFactor * imageSize.height);

希望对您有所帮助。

【讨论】:

以上是关于在 AspectFit 之后获取 UIImage 的维度或 CGRect的主要内容,如果未能解决你的问题,请参考以下文章

在 UIImage 上绘制另一个图像 -

UIImageView中UIImage上下空白高度

UIImage 中的自定尺寸 UITableViewCell 拉伸

如何在“方面填充”模式下将 UIImageView 裁剪为新的 UIImage?

如何在“方面填充”模式下将 UIImageView 裁剪为新的 UIImage?

在方向更改时自动缩放 UIView 以按比例缩放以适合父视图