在保存到相机胶卷时,imageView中显示的图像会丢失纵横比并变得模糊

时间:2016-12-13 13:48:59

标签: swift swift3

我正在创建一个图片应用程序,可以将简单的框架放在加载到imageView中的图像上,并将它们保存为练习的新图像,因为我对快速和尝试学习非常陌生。这些屏幕截图显示了框架隐藏,因为问题在于框架后面加载的图像。

我的代表不足以发布图片,但具体问题是:图片中显示的图像丢失纵横比,并在保存到相机胶卷时横向变宽。

我将imageView的约束设置为与任何大小的设备保持特定的宽高比,以便相应地增长和缩小。我也将它的内容模式设置为通过IB填充方面。

在我保存图像之前,方面填充完全符合我的预期。当我点击保存图像视图内的图像时,立即消除宽度并失去其纵横比。

我将图像导入到imageView:

 func importPicture() {
    let picker = UIImagePickerController()
    picker.allowsEditing = true
    picker.delegate = self
    present(picker, animated: true)
}

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
    guard let image = info[UIImagePickerControllerEditedImage] as? UIImage else { return }

    dismiss(animated: true)

    currentImage = image
    unchangedImage = image

    self.imageView.image = currentImage

}

然后我画:

func drawImagesAndText() {

    let renderer = UIGraphicsImageRenderer(size: CGSize(width: imageView.bounds.size.width, height: imageView.bounds.size.height))

    img = renderer.image { ctx in


     let bgImage = currentImage
        bgImage?.draw(in: CGRect(x: 0, y: 0, width: imageView.bounds.size.width, height: imageView.bounds.size.height))

        let frame = UIImage(named: "5x4frame")
        frame?.draw(in: CGRect(x: 0, y: 0, width: imageView.bounds.size.width, height: imageView.bounds.size.height))
    }
    imageView.image = img
}

这是我能想到的唯一方法,可以在绘制图像视图的同时绘制图像。

这是我使用的保存功能,我将此功能绑定到"保存按钮""来自IB的出口。

 UIImageWriteToSavedPhotosAlbum(img, self, #selector(image(_:didFinishSavingWithError:contextInfo:)), nil)
}

感谢任何和所有建议

0 个答案:

没有答案