在Swift 3中使用UIImagePickerController
通常,在iOS应用程序中,要求用户从其设备中选择图像,然后将其用作整个应用程序中自己的化身。 在本文中,我们讨论了如何在Swift 3中配置和使用UIImagePickerController
。
我们将设置一个显示默认图像的UI组件。 用户可以单击该默认图像,然后用从其设备中选取的另一张替换该默认图像。
在实际的应用程序中,选择图像后,我们会将其发送到服务器,但是为了本教程的简单起见,我们只需要选择图像-压缩图像(谁想在服务器上存储巨大的图像),然后提取图片信息以备将来使用。
如果您已经了解UIImagePickerController
并想绕过长度说明,则继续并在文章末尾选择最终代码。
1.设置组件
2.将profileImage
与操作关联以选择图像表单设备
使用addTarget
将profileImage
与自定义函数相关联
现在运行该应用程序,单击profileImage
,提示信息提示您是否允许它访问照片。 单击“确定”以允许,现在您已在照片中-选择照片,对其进行编辑,然后按“选择”以完成。 imagePickerController
将解散,并携带您选择的照片,接下来什么也没发生……。
现在是时候决定如何处理选定的图像
此时,我们需要决定如何处理选定的图像。 在此应用中,我们将默认图像替换为我们选择的图像。
首先,使用UINavigationControllerDelegate
和UIImagePickerControllerDelegate
扩展当前的ViewController
,然后设置imagePickerController.delegate = self
之后,可以调用imagePickerController
didFinishPickingMediaWithInfo
方法,在这里我们可以获取所选图像的详细信息。 现在是在XCode上设置一个断点以查看其内部info
好时机
现在是时候用选定的图像更新profileImage
代码说明:
- 我们首先检查所选照片是否已编辑(缩放,裁剪…),如果是,则将
profileImage
设置为editedImage
,否则使用originalImage
- 将选定的图像四舍五入,并放入1px的黑色边框
- 关闭
imagePickerController
,返回到初始屏幕。 现在,您将看到默认图像替换为新图像。
3.提交图片
在实际应用中,这是开发人员要将图像发送到服务器的关键点。 取决于服务器技术,处理上传图像可能会有所不同。 在本文中,我们将介绍压缩图像并使其仅准备上传
现在是时候照顾一下submitButton
:
将submitButton
与处理动作相关联
与profileImage
相似,我们告诉submitButton
在单击时调用方法handleSubmit
– .touchUpInside
至此,我们想在handleSubmit
内部
- 压缩图像使其更小→保存数据🗜
- 将图像发送到月球🚀
这里我们使用UIImageJPEGRepresentation
来获取profileImage的数据,该函数带有compressionQuality
参数。
生成的JPEG图像的质量,表示为0.0到1.0之间的值。 值0.0表示最大压缩率(或最低质量),而值1.0表示最小压缩率(或最佳质量)。” — Apple文档