简短版本:我如何知道 UIImageView 的哪个区域包含图像,而不是纵横比填充?
较长的版本:我有一个固定大小的 UIImageView,如图所示:
我正在将照片加载到此 UIViewController 中,并且我想保留原始照片的纵横比,因此我将 contentMode 设置为 Aspect Fit。这最终确保了整个照片都显示在 UIImageView 中,但具有添加一些填充(配置为红色)的副作用:
到目前为止没问题....但是现在我正在对原始图像进行人脸检测。人脸检测代码返回一个 CGRects 列表,然后我在 UIImageView 之上渲染(我有一个子类 UIView,然后在 IB 中布置一个与 UIImageView 大小和偏移相同的实例)。
当没有填充照片以适应 UIImageView 时,这种方法非常有效。但是,如果有填充,它会引入一些偏斜,如绿色所示:
渲染框时我需要考虑图像填充,但我看不到检索它的方法。
因为我知道原始图像大小和 UIImageView 大小,我可以做一些代数来计算填充应该在哪里。但是,似乎有一种方法可以检索此信息,而我忽略了它。