【问题标题】:Get the coordinate of a right edge of a PNG in Swift在 Swift 中获取 PNG 右边缘的坐标
【发布时间】:2020-09-08 23:27:08
【问题描述】:
我正在尝试找到一种方法来检测 png 的右边缘并为其添加标签(如屏幕截图中的文本“AB”)。我目前这样做的方法是在图像顶部添加一个标签,然后设置它的左、右和顶部约束。
现在这种方法适用于 1 只特定的鞋子,但如果我添加更多不同形状和尺寸的鞋子,那么它显然不起作用,并且标签位置不在我想要的位置。
那么无论如何我可以检测到 png 图像的右边缘吗?所以我可以设置相对于图像本身而不是图像视图的约束?不确定这是否可能。
谢谢
【问题讨论】:
标签:
ios
swift
xcode
image-processing
【解决方案1】:
您可以自行获取图像大小from here。然后你可以得到图像本身的纵横比,UIImageView 的纵横比(使用.bounds 属性)并进行一些几何计算。
更新:可以帮助您的代码:
let imageSize = yourImage.size
let imageViewSize = yourImageView.bounds.size
let imageAspectRatio = imageSize.height / imageSize.width
let imageViewAspectRatio = imageViewSize.height / imageViewSize.width
var rightOffset: CGFloat = 0
if imageAspectRatio > imageViewAspectRatio {
let scaleCoef = imageViewSize.height / imageSize.height
let scaledWidth = imageSize.width * scaleCoef
rightOffset = (imageViewSize.width - scaledWidth) / 2
}
【解决方案2】:
不幸的是,鞋子的形状完全不同,因此任何纯代码解决方案都无法正常工作。
所以我要求设计师添加一个占位符文本,然后使用ML Kit 检测框架。然后在图像顶部添加我自己的标签。