[英]iOS - Drawing Rectangles (CGRect) on UIImage in Swift not working correctly
我正在尝试在UIImage上绘制矩形(CGRects数组),该矩形将被渲染回最终用户。 由于缺少更好的短语,最终结果看起来很奇怪。 例如,如果我有一个由2个CGRect组成的数组,则仅绘制一个,但几乎没有完成。 另一个被省略。 请参阅下面的图像,以了解如何使用特定的CGRects数组显示图像。 (仅供参考:我将图像发送到Google Cloud进行处理,然后以一系列CGRects作为响应)
我想念什么?
private func drawOccurrencesOnImage(_ occurrences: [CGRect], _ image: UIImage) -> UIImage? {
let imageSize = image.size
let scale: CGFloat = 0.0
UIGraphicsBeginImageContextWithOptions(imageSize, false, scale)
image.draw(at: CGPoint.zero)
let ctx = UIGraphicsGetCurrentContext()
ctx?.addRects(occurrences)
ctx?.setStrokeColor(UIColor.red.cgColor)
ctx?.setLineWidth(2.0)
ctx?.strokePath()
guard let drawnImage = UIGraphicsGetImageFromCurrentImageContext() else {
presentAlert(alertTitle: "Error", alertText: "There was an issue, please try again")
return nil
}
UIGraphicsEndImageContext()
return drawnImage
}
CGRect数组(上面函数中的“出现次数”)的值为“ [[(298.0,868.0,65.0,43.0),(464.0,1017.0,67.0,36.0)]”,结果如下图所示:
更多详细信息:使用Swift 4,iOS 12
谢谢!
代码是正确的。
“ [((298.0,868.0,65.0,43.0),(464.0,1017.0,67.0,36.0)]”
坐标不正确。
请考虑iPhone分辨率。
imageView.image = drawOccurrencesOnImage([CGRect(x: 100, y: 100, width: 59, height: 60), CGRect(x: 120, y: 50, width: 59, height: 60)], UIImage(named: "person-placeholder")!)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.