iOS - 在 Swift 中的 UIImage 上绘制矩形 (CGRect) 无法正常工作
iOS - Drawing Rectangles (CGRect) on UIImage in Swift not working correctly
我正在尝试在 UIImage 上绘制矩形(CGRects 数组),它将被渲染回 end-user。
最终的结果,由于缺乏更好的短语,看起来很奇怪。例如,如果我有一个包含 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 数组(来自上述函数的 "occurrences")值为“[(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")!)
我正在尝试在 UIImage 上绘制矩形(CGRects 数组),它将被渲染回 end-user。 最终的结果,由于缺乏更好的短语,看起来很奇怪。例如,如果我有一个包含 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 数组(来自上述函数的 "occurrences")值为“[(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")!)