ios - 如何使用 Swift 选择图像的一部分、裁剪并保存?

标签 ios image camera uiimagepickercontroller crop

我正在尝试使用 Swift 创建一个 iOS 应用程序来捕获图像并让用户保存图像的选定部分。在许多基于摄像头的应用程序中,我注意到提供了一个矩形框来让用户选择所需的部分。这涉及滑动矩形的边缘或移动角以适合所需区域。

能否请您指导我如何实现可移动矩形以及如何仅保存那部分图像?

最佳答案

使用 Swift 3

可以使用 CoreGraphics 中的 CGImages 进行图像裁剪。

像这样获取 UIImage 的 CGImage 版本:

// cgImage is an attribute of UIImage
let cgImage = image.cgImage

CGImage 对象有一个方法 cropping(to: CGRect) 进行裁剪:

let croppedCGImage: CGImage = cgImage.cropping(to: toRect)

最后,将 CGImage 转换回 UIImage:

let uiImage = UIImage(cgImage: croppedCGImage)

示例函数:

func cropImage(image: UIImage, toRect: CGRect) -> UIImage? {
    // Cropping is available trhough CGGraphics
    let cgImage :CGImage! = image.cgImage
    let croppedCGImage: CGImage! = cgImage.cropping(to: toRect)

    return UIImage(cgImage: croppedCGImage)
}

裁剪的 CGRect 属性定义了图像中将被裁剪的“裁剪矩形”。

关于ios - 如何使用 Swift 选择图像的一部分、裁剪并保存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31254435/

相关文章:

ios - 有没有办法以编程方式将 iOS 设备的相机焦点设置为无限远?

c# - unity 3d碰撞时相机抖动

ios - 关闭 viewController 后更新 outlets

ios - 启用/禁用按钮,用于验证在文本字段中输入的电话号码

java - 如何将缓冲图像转换为图像,反之亦然?

image - 在 R 中聚类照片?

android - 我使用相机的代码有什么问题?

ios - 添加 BurSTLySDK 和 TestFlightSDK 导致链接器错误

ios - MPRemoteCommandCenter 控制中心暂停按钮即使在音频文件暂停后也不会更新

java - 没有在for循环中调用Android AsyncTask