diff --git a/kplayer/core/MediaItem.swift b/kplayer/core/MediaItem.swift index 6a851d5..378ad50 100644 --- a/kplayer/core/MediaItem.swift +++ b/kplayer/core/MediaItem.swift @@ -260,21 +260,26 @@ class MediaItem: CustomDebugStringConvertible, ObservableObject, Identifiable, H Absolute URL, unter der das Image des Items abgerufen werden kann. */ var imageUrlAbsolute: String { - if thumbUrl!.starts(with: "file:") { - return thumbUrl! + if let turl = thumbUrl { + if turl.starts(with: "file:") { + return turl + } + + var imageUrl = turl.replacingOccurrences(of: "_thumb.", with: ".") + imageUrl = turl.replacingOccurrences(of: "/ren/thumbs/", with: "/ren/") + + if imageUrl.starts(with: "http") { + return imageUrl + } + + imageUrl = imageUrl.replacingOccurrences(of: "?preview=true", with: "") + imageUrl = imageUrl.addingPercentEncoding(withAllowedCharacters: NSCharacterSet.urlQueryAllowed)! + + return NetworkManager.sharedInstance.vidurl + imageUrl.substringStartingFrom(10) } - - var imageUrl = thumbUrl!.replacingOccurrences(of: "_thumb.", with: ".") - imageUrl = thumbUrl!.replacingOccurrences(of: "/ren/thumbs/", with: "/ren/") - - if imageUrl.starts(with: "http") { - return imageUrl + else { + return " " } - - imageUrl = imageUrl.replacingOccurrences(of: "?preview=true", with: "") - imageUrl = imageUrl.addingPercentEncoding(withAllowedCharacters: NSCharacterSet.urlQueryAllowed)! - - return NetworkManager.sharedInstance.vidurl + imageUrl.substringStartingFrom(10) } var playerURL: URL? { diff --git a/kplayer/detail/EditItemView.swift b/kplayer/detail/EditItemView.swift index 1ba4335..19d9e7f 100644 --- a/kplayer/detail/EditItemView.swift +++ b/kplayer/detail/EditItemView.swift @@ -181,6 +181,8 @@ struct EditItemView: View { 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("nicki"); }, label: { Text("nicki") }).buttonStyle(BorderlessButtonStyle()) + Button(action: { faceSelectedItem("mitra"); }, label: { Text("mitra") }).buttonStyle(BorderlessButtonStyle()) Button(action: { faceSelectedItem("amruta"); }, label: { Text("amruta") }).buttonStyle(BorderlessButtonStyle()) } diff --git a/kplayer/photo/SPhotoAlbumView.swift b/kplayer/photo/SPhotoAlbumView.swift index 13d1172..e7662c5 100644 --- a/kplayer/photo/SPhotoAlbumView.swift +++ b/kplayer/photo/SPhotoAlbumView.swift @@ -16,7 +16,7 @@ struct SPhotoAlbumView: View { @State var edit = false @State var embedded = false @State var embDown = false - @State var faceResultImage: UIImage? = nil + @State var faceModel: SPhotoModel? = nil init(completionHandler: ((Bool) -> ())?, model: SPhotoModel) { self.completionHandler = completionHandler @@ -68,9 +68,9 @@ struct SPhotoAlbumView: View { }.task() { model.preload() } - .sheet(isPresented: Binding(get: { faceResultImage != nil }, set: { if !$0 { faceResultImage = nil } })) { - if let img = faceResultImage { - Image(uiImage: img).resizable().scaledToFit() + .sheet(isPresented: Binding(get: { faceModel != nil }, set: { if !$0 { faceModel = nil } })) { + if let fm = faceModel { + SPhotoView(model: fm) } } if embedded && !more { @@ -143,7 +143,10 @@ struct SPhotoAlbumView: View { let filename = (item.thumbUrl! as NSString).lastPathComponent let data = try await FaceManager.sharedInstance.processOneImage(inputImage: path+"/"+filename, sourceFace: "benchmark/" + name + ".jpg") if let img = UIImage(data: data) { - await MainActor.run { faceResultImage = img } + let fm = SPhotoModel(allItems: [item]) + fm.timer?.invalidate() + fm.image = img + await MainActor.run { faceModel = fm } } } } diff --git a/kplayer/photo/SPhotoModel.swift b/kplayer/photo/SPhotoModel.swift index 0604919..15590a0 100644 --- a/kplayer/photo/SPhotoModel.swift +++ b/kplayer/photo/SPhotoModel.swift @@ -190,6 +190,10 @@ class SPhotoModel : ObservableObject { } } + if folderIndex > folderItems.count - 1 { + return + } + var selectedItem = compilation ? selectedItem : folderItems[folderIndex] NetworkManager.sharedInstance.loadPicDetails(items: selectedItem, result: { (im: [MediaItem]) in