使用 SwiftUI 轻松裁剪你的图像

SwiftyCrop – SwiftUI

🔭 概述

SwiftyCrop 允许用户在 SwiftUI 应用程序中无缝裁剪图像。它提供了一个用户友好的界面,让裁剪图像像选择所需区域一样简单。

使用 SwiftyCrop,您可以轻松调整裁剪区域、保持纵横比、放大/缩小以进行精确裁剪。您还可以指定裁剪蒙版为正方形或圆形。

支持并本地化了以下语言:

  • 🇬🇧 英语
  • 🇩🇪 德语
  • 🇫🇷 法语
  • 🇮🇹 意大利语
  • 🇷🇺 俄语
  • 🇪🇸 西班牙语
  • 🇹🇷 土耳其语
  • 🇺🇦 乌克兰语

可以在 Sources/SwiftyCrop/Resources 中找到本地化文件。

📕 目录

🧳 要求

  • iOS 16.0 或更高版本
  • Xcode 15.0 或更高版本
  • Swift 5.9 或更高版本

💻 安装

在项目中使用 SwiftyCrop 有两种方法:

  • 使用 Swift 包管理器
  • 手动安装(嵌入 Xcode 项目)

Swift 包管理器

Swift 包管理器 是一个用于管理 Swift 代码的工具。它与 Swift 构建系统集成在一起,以自动化下载、编译和链接依赖项的过程。

要在 Xcode 项目中集成 SwiftyCrop,可以使用 Xcode 14.3 或更高版本,在 文件 > Swift 包 > 添加包依赖项... 中指定它:

https://github.com/benedom/SwiftyCrop, :branch="master"

手动

如果您不想使用任何依赖项管理器,则可以手动将 SwiftyCrop 集成到项目中。将 Sources/SwiftyCrop 文件夹放入 Xcode 项目中。确保启用 复制项目(如果需要)创建组

🛠️ 用法

快速入门

此示例说明如何在图像已经设置后,在全屏封面上显示 SwiftyCropView

import SwiftUI
import SwiftyCrop

struct ExampleView: View {
    @State private var showImageCropper: Bool = false
    @State private var selectedImage: UIImage?

    var body: some View {
        VStack {
            /*
            Update `selectedImage` with the image you want to crop,
            e.g. after picking it from the library or downloading it.

            As soon as you have done this, toggle `showImageCropper`.
            
            Below is a sample implementation:
             */

             Button("Crop downloaded image") {
                Task {
                    selectedImage = await downloadExampleImage()
                    showImageCropper.toggle()
                }
             }

        }
        .fullScreenCover(isPresented: $showImageCropper) {
            if let selectedImage = selectedImage {
                SwiftyCropView(
                    imageToCrop: selectedImage,
                    maskShape: .square