Swift - 从图库和相机强制方形照片
Swift - force square photo from library and camera
我正在构建一个应用程序,我需要强制用户上传方形图片(就像 Instagram 所做的那样),但是我想避免从头开始编写界面,因为我们时间不够。
请务必注意,用户必须选择图像的哪一部分 he/she 想要显示,因此在不询问用户的情况下以编程方式裁剪图像是不可能的。
我已经设法通过相机让它工作,但是通过库我似乎无法强迫用户使用方形图像。这是我的代码:
func presentGallery(){
// from library
picker.allowsEditing = true
picker.sourceType = UIImagePickerControllerSourceType.PhotoLibrary
presentViewController(picker, animated: true, completion: nil)
}
然后在我的图像选择器控制器上:
var chosenImage = info[UIImagePickerControllerEditedImage] as! UIImage
但是我没有得到想要的结果。如果 "minimum zoom" 显示图像的 100% 高度,或者如果我可以在图像的顶部和底部添加 white/black 背景就可以了。
这是问题所在:
而不是这样的:
我的应用需要从 iOS7 开始运行。
如果他们从图书馆中挑选图片,您应该做一些检查以确保图片是正方形的。
获取图像后(使用imagePickerController didFinishPickingMediaWithInfo
),然后使用[info objectForKey:UIImagePickerControllerOriginalImage];
获取图像。完成此操作后,执行检查:
if (image.size.height != image.size.width) // Show some alert
更好的解决方案可能是创建一个允许用户选择任何照片的视图,然后选择照片的方形部分导入您的应用程序,就像 Instagram 那样。
我正在构建一个应用程序,我需要强制用户上传方形图片(就像 Instagram 所做的那样),但是我想避免从头开始编写界面,因为我们时间不够。
请务必注意,用户必须选择图像的哪一部分 he/she 想要显示,因此在不询问用户的情况下以编程方式裁剪图像是不可能的。
我已经设法通过相机让它工作,但是通过库我似乎无法强迫用户使用方形图像。这是我的代码:
func presentGallery(){
// from library
picker.allowsEditing = true
picker.sourceType = UIImagePickerControllerSourceType.PhotoLibrary
presentViewController(picker, animated: true, completion: nil)
}
然后在我的图像选择器控制器上:
var chosenImage = info[UIImagePickerControllerEditedImage] as! UIImage
但是我没有得到想要的结果。如果 "minimum zoom" 显示图像的 100% 高度,或者如果我可以在图像的顶部和底部添加 white/black 背景就可以了。
这是问题所在:
而不是这样的:
我的应用需要从 iOS7 开始运行。
如果他们从图书馆中挑选图片,您应该做一些检查以确保图片是正方形的。
获取图像后(使用imagePickerController didFinishPickingMediaWithInfo
),然后使用[info objectForKey:UIImagePickerControllerOriginalImage];
获取图像。完成此操作后,执行检查:
if (image.size.height != image.size.width) // Show some alert
更好的解决方案可能是创建一个允许用户选择任何照片的视图,然后选择照片的方形部分导入您的应用程序,就像 Instagram 那样。