我想捕獲圖像中的當前屏幕。我這樣做:UIGraphicsBeginImageContext不返回視網膜圖像
UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, self.view.isOpaque, UIScreen.main.scale)
self.view.drawHierarchy(in: self.view.bounds, afterScreenUpdates: false)
let snapshot = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
問題是規模參數。如果我理解正確,0.0代表非視網膜,2.0代表視網膜,3.0代表6加和7加視網膜。無論我輸入到scale參數中,輸出始終是375x667分辨率的圖像。我也嘗試了不同的方法:
UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, self.view.isOpaque, UIScreen.main.scale)
self.view.layer.render(in: UIGraphicsGetCurrentContext()!)
let snapshot: UIImage? = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
同樣的情況。我甚至使用
UIScreen.main.scale
這實際上回報價值2.0。我究竟做錯了什麼?我如何獲得更高分辨率的圖像?
實際上,0.0表示實際的屏幕比例,而不是非視網膜。那是1.0。 – the4kman
你如何確定最終圖像的「大小」? –
「分辨率」是什麼意思?唯一不同的是UIImage的「scale」。尺寸以點爲單位,而不是像素;所有的比例都是一樣的。 – matt