다음 코드로 이미지의 크기를 조정할 때 사용되었지만 스케일 인자와 관련하여 잘 작동했습니다. 이제 스위프트 3을 사용하면 스케일 인자가 고려되지 않은 이유를 알 수 없습니다. 이미지의 크기는 조정되지만 배율 인수는 적용되지 않습니다. 왜 그런지 알아?스위프트 : 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