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

Sri*_*ram 16 camera image crop uiimagepickercontroller ios

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

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

Pau*_*ulo 30

使用Swift 3

图像裁剪是可以做到用CGImagesCoreGraphics中.

获取像这样的UIImage的CGImage版本:

// cgImage is an attribute of UIImage
let cgImage = image.cgImage
Run Code Online (Sandbox Code Playgroud)

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

let croppedCGImage: CGImage = cgImage.cropping(to: toRect)
Run Code Online (Sandbox Code Playgroud)

最后,转换回CGImage的UIImage:

let uiImage = UIImage(cgImage: croppedCGImage)
Run Code Online (Sandbox Code Playgroud)

功能示例:

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)
}
Run Code Online (Sandbox Code Playgroud)

裁剪的CGRect属性定义将被裁剪的图像内的"裁剪矩形".


Sri*_*ram 10

找到一个解决方案.这次是在斯威夫特.该解决方案看起来很优雅,相对于其他此类解决方案的代码用较少的行编写.

这是.. https://github.com/DuncanMC/CropImg 感谢Duncan Champney在github上发表他的作品.


Sub*_*bbu 7

https://github.com/myang-git/iOS-Image-Crop-View可以满足您的需求......

希望这可以帮助.

  • 有这个解决方案的快速版本? (2认同)