ios - Swift - 强制从库和相机中获取方形照片

标签 ios swift camera gallery square

我正在构建一个应用程序,我需要强制用户上传方形图片(就像 Instagram 一样),但是我想避免从头开始编写界面,因为我们时间有限。

需要注意的是,用户必须选择他/她想要显示图像的哪一部分,因此在不询问用户的情况下以编程方式裁剪图像是不可能的。

我已经设法通过相机让它工作,但是通过库我似乎无法强制用户使用方形图像。这是我的代码:

func presentGallery(){
    // from library
    picker.allowsEditing = true
    picker.sourceType = UIImagePickerControllerSourceType.PhotoLibrary
    presentViewController(picker, animated: true, completion: nil)
}

然后在我的 imagepickercontroller 上:

    var chosenImage = info[UIImagePickerControllerEditedImage] as! UIImage 

但是我没有得到想要的结果。如果“最小缩放”是显示图像高度的 100%,或者我可以在图像的顶部和底部添加白色/黑色背景,那就太好了。

问题是:enter image description here

而不是这样的:

enter image description here

我的应用程序需要从 iOS7 开始运行。

最佳答案

如果他们从库中挑选图片,您应该进行某种检查以确保图片是正方形的。

获取图像后(使用imagePickerController didFinishPickingMediaWithInfo),然后使用[info objectForKey:UIImagePickerControllerOriginalImage];获取图像。完成此操作后,请执行检查:

if (image.size.height != image.size.width) // Show some alert
<小时/>

更好的解决方案可能是创建一个 View ,允许用户选择任何照片,然后选择照片的方形部分导入到您的应用中,就像 Instagram 所做的那样。

关于ios - Swift - 强制从库和相机中获取方形照片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32771295/

相关文章:

ios - 将应用程序上传到 Appstore for Client 的最佳实践

ios - 迭代从JSON填充的NSArray

arrays - 使用 Sections 实现 TableView 并使用结构中的数据填充它

opencv - 优化多个相机的立体校准过程

ios - swift3 中的 UITextfield 子类中的帧大小不正确

ios - UIWebView 并点击链接

swift - 我应该为自定义分组创建一个单独的 Realm 对象吗?

ios - 以编程方式从 collectionView Cell didSelectItemAt 推送到新的 ViewController - swift

自定义相机 Activity 的 Android 图像方向问题

camera - Motion JPEG 和 JPEG 、嵌入式和多媒体编解码器之间的确切区别