繁体   English   中英

iOS-Swift中UIImage上的绘制矩形(CGRect)无法正常工作

[英]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)]”,结果如下图所示: UIImage的屏幕截图

更多详细信息:使用Swift 4,iOS 12

谢谢!

代码是正确的。

“ [((298.0,868.0,65.0,43.0),(464.0,1017.0,67.0,36.0)]”

坐标不正确。

请考虑iPhone分辨率。

图片


img

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM