次のコードで画像のサイズを変更していましたが、スケールファクタに関してはうまく機能しませんでした。 Swift 3ではスケールファクタが考慮されていない理由を理解できません。画像のサイズは変更されますが、倍率は適用されません。なぜなのかご存知ですか?Swift:UIGraphicsBeginImageContextWithOptionsスケール係数は0に設定されていますが、適用されません。
let layer = self.imageview.layer
UIGraphicsBeginImageContextWithOptions(layer.bounds.size, true, 0)
layer.render(in: UIGraphicsGetCurrentContext()!)
let scaledImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
print("SCALED IMAGE SIZE IS \(scaledImage!.size)")
print(scaledImage!.scale)
たとえば、iPhone 5でスクリーンショットを撮ると、画像サイズは320 * 568になります。私はまったく同じコードで640 * 1136を取得していましたが、スケールファクターが適用されない原因は何ですか?
イメージの縮尺を印刷すると、デバイス解像度に基づいて1,2または3が印刷されますが、コンテキストから取得されたイメージには適用されません。
に@LeoDabusはすでに試みたが、それが適用されていません。私もUIScreen.main.scaleを試しました。 – Sam
@LeoDabus私はすでに質問をする前にあなたの投稿をチェックしました:)質問は、どの層でも構わない画像固有のものではありません。問題は、グラフィックコンテキストからイメージを取得するこの方法では、適切なスケールファクターが適用されているため、考慮していないことです。スケールファクタが適用されない理由です。 – Sam