我已经在网上搜索了几个小时,试图寻找解决方案,但是没有运气。
我已经阅读了一些已经提出的主题并接受了建议,但是看不到。
我已经在项目中安装了CropViewController
窗格,并且图像/图像预览的纵横比为9:16,非常完美。问题是当我希望将此图像保存到用户照片库时。只是相同/正常的长宽比Original
。
这是我的代码。我在一个视图控制器中具有相机功能,在另一个视图控制器中具有图像的呈现和保存功能。
import UIKit
import CropViewController
class CameraPreviewController: UIViewController {
var image: UIImage!
@IBOutlet var imagePreview: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
imagePreview.image = image
}
@IBAction func cancelButton_TouchUpInside(_ sender: Any) {
navigationController?.popViewController(animated: true)
}
@IBAction func saveButton_TouchUpInside(_ sender: Any) {
let croppedImage: UIImage = self.image
let cropViewController = CropViewController(image: croppedImage)
cropViewController.customAspectRatio = CGSize(width: 9.0, height: 16.0)
self.image = croppedImage
UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil)
navigationController?.popViewController(animated: true)
}
}
如何保存屏幕上的图像?我已经尝试过但是没有运气。图像为9:16,但保存时出现问题。我该如何克服这个问题?
谢谢。
答案 0 :(得分:0)
您应在“ info.plist”中添加“隐私-照片库附加使用说明”。 尝试这种方法,希望这对您没有帮助,我会尝试寻找另一种方法。
func cropViewController(_ cropViewController: CropViewController, didCropToImage image: UIImage, withRect cropRect: CGRect, angle: Int) {
UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil)
}
答案 1 :(得分:0)
找到了解决方案。
更改了这一行代码-
captureSession.sessionPreset = .photo
到以下:
captureSession.sessionPreset = .iFrame1280x720