【发布时间】:2016-04-02 16:58:06
【问题描述】:
我正在构建一个应用程序,我需要强制用户上传方形图片(就像 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% 的高度,或者我可以在图像的顶部和底部添加白色/黑色背景,那会很好。
而不是这样的:
我的应用需要从 iOS7 开始运行。
【问题讨论】:
-
您可以使用第一个扩展来返回一个方形图像。如果它不能解决您的问题,请告诉我,以便我重新提出您的问题。
-
@LeoDabus 感谢您的帮助,但是使用您的代码,图像会被裁剪。显示用户想要的所有信息很重要。这就是为什么我需要这两件事中的任何一个:1)将“像素”添加到图像的顶部/底部或左侧/右侧,以使其成为正方形 2)强制用户从图库查看器中选择正方形图片(我上传的第二张图片)
-
要使相机中的图像成为正方形,您总是需要裁剪它,无论如何我已经重新打开了这个问题。
-
我已经设法让它使用以下代码: UIGraphicsBeginImageContextWithOptions(CGSize(width: maxDimension, height: maxDimension), false, 0.0); image.drawInRect(CGRectMake(0, image.size.width/2-image.size.height/2, image.size.width, image.size.height)) newImage = UIGraphicsGetImageFromCurrentImageContext() UIGraphicsEndImageContext() return newImage 但是现在我'想为矩形添加白色背景,这就是我所缺少的。
标签: ios swift camera gallery square