From 08b9c2532cd22c1ba31f1d40fef5795e61bf16a4 Mon Sep 17 00:00:00 2001 From: marcoschmickler Date: Tue, 9 Dec 2025 20:19:59 +0100 Subject: [PATCH] Face --- kplayer/core/FaceManager.swift | 2 +- kplayer/detail/EditItemView.swift | 47 +++++++++++++++++++++++++++++ kplayer/photo/SPhotoAlbumView.swift | 20 ++++++------ 3 files changed, 58 insertions(+), 11 deletions(-) diff --git a/kplayer/core/FaceManager.swift b/kplayer/core/FaceManager.swift index d118026..560ba2d 100644 --- a/kplayer/core/FaceManager.swift +++ b/kplayer/core/FaceManager.swift @@ -176,7 +176,7 @@ struct AnyCodable: Codable { class FaceManager { static let sharedInstance = FaceManager() - let faceUrl = "http://win11marco:5013" + let faceUrl = "http://win11marco:8000" private let session: URLSession private init() { diff --git a/kplayer/detail/EditItemView.swift b/kplayer/detail/EditItemView.swift index eca6676..016d52e 100644 --- a/kplayer/detail/EditItemView.swift +++ b/kplayer/detail/EditItemView.swift @@ -66,6 +66,9 @@ struct EditItemView: View { @State var scrubber = 0.0 + @State + var snap = true + var len: Double var delegate: EditItemDelegate @@ -135,6 +138,18 @@ struct EditItemView: View { Text("cancel") }).padding(5).buttonStyle(BorderlessButtonStyle()); } + VStack { + KToggleButton(text: "snap", binding: $snap) + Button(action: {faceSelectedItem("sarah"); }, label: {Text("sarah")}).buttonStyle(BorderlessButtonStyle()) + Button(action: {faceSelectedItem("claudia"); }, label: {Text("claudia")}).buttonStyle(BorderlessButtonStyle()) + Button(action: {faceSelectedItem("jessica"); }, label: {Text("jessica")}).buttonStyle(BorderlessButtonStyle()) + Button(action: {faceSelectedItem("marleen"); }, label: {Text("marleen")}).buttonStyle(BorderlessButtonStyle()) + Button(action: {faceSelectedItem("renate"); }, label: {Text("renate")}).buttonStyle(BorderlessButtonStyle()) + Button(action: {faceSelectedItem("birgit"); }, label: {Text("birgit")}).buttonStyle(BorderlessButtonStyle()) + Button(action: {faceSelectedItem("barbara"); }, label: {Text("barbara")}).buttonStyle(BorderlessButtonStyle()) + Button(action: {faceSelectedItem("nina"); }, label: {Text("nina")}).buttonStyle(BorderlessButtonStyle()) + Button(action: {faceSelectedItem("amruta"); }, label: {Text("amruta")}).buttonStyle(BorderlessButtonStyle()) + } TagEditor(item: item) }.background(Color.clear) @@ -150,6 +165,38 @@ struct EditItemView: View { //Spacer() } + func faceSelectedItem(_ name: String) { + let path = item.fullPath.replacing("/srv/samba/ren", with: "z:") + let outpath1 = path.replacing("/", with: "") + let outpath = outpath1.replacing("z:", with: "z:/cut/videos/"+name+"/") + + + print(path) + print(outpath1) + print(outpath) + + + Task { + if (snap) { + let imagePath = item.imageUrlAbsolute.replacing("http://linkstation:8089/ren", with: "z:").replacing("_thumb", with: "") + print(imagePath) + print(item.thumbUrlAbsolute) + + let outimagepath = "z:/cut/snapshots/" + name + "/" + imagePath.substringStartingFrom(2).replacing("/", with: "") + + try await FaceManager.sharedInstance.processImage(inputImagePath: imagePath, sourceFacePath: "benchmark/"+name+".jpg", outputPath: outimagepath) + + + } + else { + try await FaceManager.sharedInstance.processVideo(inputVideoPath: path, sourceFacePath: "benchmark/"+name+".jpg", outputPath: outpath) + //try! await FaceManager.sharedInstance.processImage(inputImagePath: "input", sourceFacePath: "benchmark/Renate.jpg") + delegate.cancelEdit() + } + } + + } + static func formatSecondsToString(_ seconds: TimeInterval) -> String { if seconds.isNaN { return "00:00" diff --git a/kplayer/photo/SPhotoAlbumView.swift b/kplayer/photo/SPhotoAlbumView.swift index 22b1d7f..05079f0 100644 --- a/kplayer/photo/SPhotoAlbumView.swift +++ b/kplayer/photo/SPhotoAlbumView.swift @@ -88,15 +88,15 @@ struct SPhotoAlbumView: View { Text("copy") }) .buttonStyle(BorderlessButtonStyle()) - Button(action: {faceSelectedItem("sarah")}, label: {Text("sarah")}).buttonStyle(BorderlessButtonStyle()) - Button(action: {faceSelectedItem("claudia")}, label: {Text("claudia")}).buttonStyle(BorderlessButtonStyle()) - Button(action: {faceSelectedItem("jessica")}, label: {Text("jessica")}).buttonStyle(BorderlessButtonStyle()) - Button(action: {faceSelectedItem("marleen")}, label: {Text("marleen")}).buttonStyle(BorderlessButtonStyle()) - Button(action: {faceSelectedItem("renate")}, label: {Text("renate")}).buttonStyle(BorderlessButtonStyle()) - Button(action: {faceSelectedItem("birgit")}, label: {Text("birgit")}).buttonStyle(BorderlessButtonStyle()) - Button(action: {faceSelectedItem("barbara")}, label: {Text("barbara")}).buttonStyle(BorderlessButtonStyle()) - Button(action: {faceSelectedItem("nina")}, label: {Text("nina")}).buttonStyle(BorderlessButtonStyle()) - Button(action: {faceSelectedItem("amruta")}, label: {Text("amruta")}).buttonStyle(BorderlessButtonStyle()) + Button(action: {faceSelectedItem("sarah"); more=false; }, label: {Text("sarah")}).buttonStyle(BorderlessButtonStyle()) + Button(action: {faceSelectedItem("claudia"); more=false; }, label: {Text("claudia")}).buttonStyle(BorderlessButtonStyle()) + Button(action: {faceSelectedItem("jessica"); more=false; }, label: {Text("jessica")}).buttonStyle(BorderlessButtonStyle()) + Button(action: {faceSelectedItem("marleen"); more=false; }, label: {Text("marleen")}).buttonStyle(BorderlessButtonStyle()) + Button(action: {faceSelectedItem("renate"); more=false; }, label: {Text("renate")}).buttonStyle(BorderlessButtonStyle()) + Button(action: {faceSelectedItem("birgit"); more=false; }, label: {Text("birgit")}).buttonStyle(BorderlessButtonStyle()) + Button(action: {faceSelectedItem("barbara"); more=false; }, label: {Text("barbara")}).buttonStyle(BorderlessButtonStyle()) + Button(action: {faceSelectedItem("nina"); more=false; }, label: {Text("nina")}).buttonStyle(BorderlessButtonStyle()) + Button(action: {faceSelectedItem("amruta"); more=false; }, label: {Text("amruta")}).buttonStyle(BorderlessButtonStyle()) } .frame(width: 80, alignment: .top).offset(x: 0, y: 70), alignment: .topLeading) .overlay(TagEditor(item: model.allItems[model.index], completionHandler: DatabaseManager.sharedInstance.saveItemMetaData) @@ -118,7 +118,7 @@ struct SPhotoAlbumView: View { let item = model.selectedItem let path = item.fullPath.replacing("/srv/samba/ren", with: "z:") let outpath1 = path.replacing("/", with: "") - let outpath = outpath1.replacing("z:", with: "z:/cut/"+name+"/") + let outpath = outpath1.replacing("z:", with: "z:/cut/images/"+name+"/") print(path) print(outpath1)