前置摄像头在 SWIFT 中拍照时自动变焦



>我有一个图像视图来显示相机的结果,但问题是当我拍照时,结果是图像会缩放。

这是我的代码:

var userData2 = userData()
var base64String1: String!
var decodedData1: Data!
var decodedImage1: UIImage!
@IBOutlet weak var imageResult: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
base64String1 = userData2.fotoIDString!
decodedData1 = Data(base64Encoded: base64String1, options: [])!
decodedImage1 = UIImage(data: decodedData1)!
//    decodedImage1 = Toucan(image: decodedImage1).resize(CGSize(width: 100, height: 150)).maskWithEllipse().image
imageResult.image = decodedImage1
imageResult.transform = CGAffineTransform(rotationAngle: CGFloat.pi/2)
imageResult.contentMode = .scaleAspectFill
}

您需要将图像视图的contentMode.scaleAspectFill更改为.scaleAspectFit

试试这段代码:

var userData2 = userData()
var base64String1: String!
var decodedData1: Data!
var decodedImage1: UIImage!
@IBOutlet weak var imageResult: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
base64String1 = userData2.fotoIDString!
decodedData1 = Data(base64Encoded: base64String1, options: [])!
decodedImage1 = UIImage(data: decodedData1)!
//    decodedImage1 = Toucan(image: decodedImage1).resize(CGSize(width: 100, height: 150)).maskWithEllipse().image
imageResult.image = decodedImage1
imageResult.transform = CGAffineTransform(rotationAngle: CGFloat.pi/2)
imageResult.contentMode = .scaleAspectFit//here is the difference
imageResult.clipsToBounds = true//also add this line

}

imageResult.contentMode = .scaleAspectFill 将其更改为 .scaleAspectFit

最新更新