我正在使用UIGraphicsBeginImageContextWithOptions进行一些基本的线条绘制:
UIGraphicsBeginImageContextWithOptions(size, false, 0.0)
let path = UIGraphicsGetCurrentContext()
path!.setLineWidth(1.5)
....
x = (az / 360) * Double(size.width)
y = halfheight - Double(alt / 90 * halfheight)
path?.addLine(to: CGPoint(x:x, y:y))
path?.strokePath()
....
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
//DEBUGGING - makes quick look work
let _ = image!.cgImage
return image!
调试器报告图像的正确大小,1440x960。但是当我使用QuickLook时,图像是2880×1920像素。我很好奇是否有明显的原因?这是quicklook正在做的事情,还是预览呢?
答案 0 :(得分:1)
调试器最有可能为您提供 points 的大小,而Quick Look将为您提供像素的大小。
问题是,在0
的{{1}}参数中传递scale
,您可以使用设备的屏幕比例来显示上下文的比例。因此,如果您使用的是具有2倍显示屏的设备,并输入1440 x 960的尺寸,则您将获得2880 x 1920像素的上下文。
如果您想使用像素而不是点数,那么只需将UIGraphicsBeginImageContextWithOptions
传递到1
参数:
scale
或使用等效的UIGraphicsBeginImageContext(_:)
电话:
UIGraphicsBeginImageContextWithOptions(size, false, 1)