斯威夫特 - 从图书馆和相机强制广场照片

时间:2015-09-24 21:34:19

标签: 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开始工作。

1 个答案:

答案 0 :(得分:0)

你应该做一些检查,以确保图片是正方形的,如果他们从他们的图书馆中挑选。

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

if (image.size.height != image.size.width) // Show some alert

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