d6aeede2bc
从桌面工程复制而来,作为本仓库的 Xuxucheck/ 子目录。 为控制仓库体积做了两处删减: - 移除 Frameworks/opencv2.xcframework 下的两个 visionOS 切片 (xros-arm64、xros-arm64-simulator,合计约 106 MB),并同步删掉该 xcframework 内 Info.plist 里对应的两条 AvailableLibraries 记录, 只保留 ios-arm64 与 ios-arm64_x86_64-simulator。 - 移除全部 .DS_Store 与 xcuserdata/。 已用 xcodebuild 从本目录完整编译验证:BUILD SUCCEEDED, ProcessXCFramework 以 --platform ios 成功选中框架,产物含 3699 个 cv:: 符号 (OpenCV 确实链入),嵌入 framework 3 个,与移除无用 pod 之后的状态一致。 仓库约 206 MB,其中 OpenCV 203 MB、其余源码与依赖约 3 MB。
59 lines
1.4 KiB
Swift
59 lines
1.4 KiB
Swift
//
|
|
// ImagePickerView.swift
|
|
// XuXuCheck
|
|
//
|
|
// Created by henseycai on 2025/7/30.
|
|
//
|
|
|
|
import SwiftUI
|
|
|
|
struct ImagePickerView: View {
|
|
@State var viewModel = ImagePickerViewModel()
|
|
|
|
var body: some View {
|
|
VStack(spacing: 32) {
|
|
imageView(for: viewModel.selectedImage)
|
|
controlBar()
|
|
}
|
|
.fullScreenCover(isPresented: $viewModel.isPresentingImagePicker, content: {
|
|
ImagePicker(sourceType: viewModel.sourceType, completionHandler: viewModel.didSelectImage)
|
|
})
|
|
}
|
|
|
|
@ViewBuilder
|
|
func imageView(for image: UIImage?) -> some View {
|
|
if let image = image {
|
|
VStack{
|
|
|
|
Text("size\(image.size)")
|
|
Text(convertImageToBase64(image: image).md5)
|
|
Text("\(convertImageToBase64(image: image).count)")
|
|
|
|
Image(uiImage: image)
|
|
.resizable()
|
|
.scaledToFill()
|
|
|
|
//Text(convertImageToBase64(image: image))
|
|
}
|
|
|
|
|
|
}
|
|
else {
|
|
Text("No image selected")
|
|
}
|
|
}
|
|
|
|
func controlBar() -> some View {
|
|
HStack(spacing: 32) {
|
|
Button(action: viewModel.choosePhoto, label: {
|
|
Text("Choose Photo")
|
|
})
|
|
Button(action: viewModel.takePhoto, label: {
|
|
Text("Take a Photo")
|
|
})
|
|
}.padding()
|
|
}
|
|
}
|
|
|
|
|