画像に現在の画面をキャプチャしたい。私はこれをやっている: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 Plusおよび7 Plusの網膜を表す。スケールパラメータに何を入力しても、出力は常に375x667解像度の画像です。私はまた別のアプローチを試した:
UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, self.view.isOpaque, UIScreen.main.scale)
self.view.layer.render(in: UIGraphicsGetCurrentContext()!)
let snapshot: UIImage? = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
再び同じシナリオ。私も実際には値2.0を返し
UIScreen.main.scale
を使用しています。私は間違って何をしていますか?より高い解像度の画像を取得するにはどうすればよいですか?
実際、0.0は実際の画面のスケールを意味し、非網膜ではありません。それは1.0です。 – the4kman
結果イメージの「サイズ」はどのようにして決定していますか? –
「解像度」とはどういう意味ですか?異なるのはUIImageの「スケール」の結果だけです。サイズはピクセルではなくポイントで測定されます。それはすべてのスケールで同じです。 – matt