快速拍照时前置摄像头自动变焦

时间:2018-08-14 07:27:14

标签: ios swift cgaffinetransform

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

这是我的代码:

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
}

2 个答案:

答案 0 :(得分:0)

您需要将imageView的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


}

答案 1 :(得分:-1)

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