ios - 在 SwiftUI 中实现图像裁剪器视图工具
问题描述
我是 SwiftUI 的新手,我目前正在尝试实现裁剪图像视图,以确保我的应用程序的所有图像都是标准化的比例。从图像选择器中选择图像后,我想显示图像裁剪视图,其中我有一个确定的图像纵横比,我可以通过四处移动和缩小来改变它。我试图在网上找到代码,但几乎所有相关的东西似乎都适用于旧版本的 swift,我不确定如何使用 Swift UI 重现。
这是我的图像选择器代码供参考:
import SwiftUI
import PhotosUI
struct ImagePicker : UIViewControllerRepresentable {
@Binding var picker : Bool
@Binding var img_Data : Data
func makeCoordinator() -> Coordinator {
return ImagePicker.Coordinator(parent: self)
}
func makeUIViewController(context: Context) -> PHPickerViewController {
var config = PHPickerConfiguration()
config.selectionLimit = 1
let controller = PHPickerViewController(configuration: config)
controller.delegate = context.coordinator
return controller
}
func updateUIViewController(_ uiViewController: PHPickerViewController, context: Context) {
}
class Coordinator : NSObject,PHPickerViewControllerDelegate{
var parent : ImagePicker
init(parent : ImagePicker) {
self.parent = parent
}
func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) {
if results.isEmpty{
self.parent.picker.toggle()
return
}
let item = results.first!.itemProvider
if item.canLoadObject(ofClass: UIImage.self){
item.loadObject(ofClass: UIImage.self) { (image, err) in
if err != nil{return}
let imageData = image as! UIImage
DispatchQueue.main.async {
self.parent.img_Data = imageData.jpegData(compressionQuality: 0.5)!
self.parent.picker.toggle()
}
}
}
}
}
}
我想根据需要裁剪 img_Data 。如果您能指出我已经完成的示例,那就太好了!谢谢
编辑:我在这个 GitHub repo 上看到了这个例子:https ://github.com/nkopilovskii/ImageCropper
我很困惑如何在安装 pod 后根据模块初始化将此 ImageCropper 与我的 Swift 代码集成。我将在哪里初始化视图控制器并在我的图像选择器代码中显示导航控制器。谢谢你的帮助!
解决方案
推荐阅读
- react-native - React Native AsyncStorage 可以用来永久存储数据吗?
- android - 为什么我不能通过 android:theme 更改hintTextAppearance?
- c# - 如何使用 c# 在 mongodb 中批量插入和更新记录
- wordpress - 如何以编程方式将模式代码插入到 wordpress 中,以便它自动适用于目标帖子类型
- spring-cloud-stream - 如何使 Spring Cloud Stream 中流中未处理异常的控制台输出静音?
- python - 如何确认一个文件中的某些子字符串是否包含在另一个文件中?
- r - 使用wellPanel时为闪亮的数据表添加滚动条
- ruby-on-rails - 如何使用 minimagick 编辑上传的图像,该图像被上传到 active_storage?
- c++ - 我是否需要使用 Gstreamer 构建 OpenCV 才能在 OpenCV 中使用 Gstreamer
- javascript - 如何验证角度 6 中的多维数组值?