我正在创建一个图片应用程序,可以将简单的框架放在加载到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)
}
感谢任何和所有建议