123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249 |
- //
- // TSAIPhotoDetailsVC.swift
- // TSLiveWallpaper
- //
- // Created by 100Years on 2025/6/11.
- //
- class TSAIPhotoDetailsVC: TSBaseVC {
- var deleteBlock:(()->Void)?
- var infoModel:TSActionInfoModel?{
- didSet{
- updateImageView()
- }
- }
- lazy var bottomViewH = 60+k_Height_safeAreaInsetsBottom()
- lazy var panComparisonView : TSImageIPanComparisonView = {
- let panComparisonView = TSImageIPanComparisonView()
- return panComparisonView
- }()
-
- lazy var expandAreaView: TSAIExpandChangeView = {
- let view = TSAIExpandChangeView()
- return view
- }()
-
- lazy var switchOriginalPictureBtn: TSUIExpandedTouchButton = {
- let switchOriginalPictureBtn = TSUIExpandedTouchButton()
- switchOriginalPictureBtn.setUpButton(image:UIImage(named: "switch_original_picture"))
- switchOriginalPictureBtn.addTarget(self, action: #selector(switchOriginalPictureTouchDown), for: .touchDown)
- switchOriginalPictureBtn.addTarget(self, action: #selector(switchOriginalPictureTouchUp), for: [.touchUpInside, .touchUpOutside, .touchCancel])
- switchOriginalPictureBtn.isHidden = true
- return switchOriginalPictureBtn
- }()
-
- // lazy var rotatingPictureBtn: TSUIExpandedTouchButton = {
- // let rotatingPictureBtn = TSUIExpandedTouchButton()
- // rotatingPictureBtn.setUpButton(image:UIImage(named: "rotating_picture")){ [weak self] in
- // guard let self = self else { return }
- // //旋转图片并储存
- // if let image = netWorkImageView.image?.rotated(by: .degrees90) {
- // netWorkImageView.image = image
- // if let resultUrl = self.infoModel?.response.resultUrl,
- // let url = URL(string: resultUrl){
- // ImageCache.default.store(image, forKey: url.cacheKey)
- // }
- // }
- // }
- // rotatingPictureBtn.isHidden = true
- // return rotatingPictureBtn
- // }()
-
-
- lazy var saveBtn: UIButton = {
- let saveBtn = kCreateNormalSubmitBtn(title: "Save".localized) { [weak self] in
- guard let self = self else { return }
- clickSaveBtn()
- }
- return saveBtn
- }()
-
- var navRightBtn:UIButton = UIButton()
- override func createView() {
-
- let imageView = UIImageView.createImageView(image: .navShadow,contentMode: .scaleToFill)
- navBarContentView.addSubview(imageView)
- imageView.snp.makeConstraints { make in
- make.edges.equalToSuperview()
- }
- addNormalNavBarView()
- setPageTitle("Result".localized)
- navRightBtn = setNavigationItem("", imageName: "ai_delete", direction: .right, action: #selector(clickNavRight))
- contentView.snp.updateConstraints { make in
- make.top.equalTo(0)
- }
- contentView.addSubview(panComparisonView)
- panComparisonView.snp.makeConstraints { make in
- make.height.equalTo(k_ScreenHeight)
- make.leading.trailing.equalTo(0)
- make.centerY.equalToSuperview()
- }
-
- contentView.addSubview(saveBtn)
- saveBtn.snp.makeConstraints { make in
- make.centerX.equalToSuperview()
- make.width.equalTo(250*kDesignScale)
- make.height.equalTo(48)
- make.bottom.equalTo(-12-k_Height_safeAreaInsetsBottom())
- }
-
- contentView.addSubview(switchOriginalPictureBtn)
- switchOriginalPictureBtn.snp.makeConstraints { make in
- make.bottom.equalTo(-k_Height_safeAreaInsetsBottom() - 76)
- make.trailing.equalTo(-16)
- make.width.equalTo(40)
- make.height.equalTo(40)
- }
-
- // contentView.addSubview(rotatingPictureBtn)
- // rotatingPictureBtn.snp.makeConstraints { make in
- // make.bottom.equalTo(-k_Height_safeAreaInsetsBottom() - 76)
- // make.trailing.equalTo(-16)
- // make.width.equalTo(40)
- // make.height.equalTo(40)
- // }
-
- saveBtn.setTitleImageSpace(spacing: 0)
-
- // if viewModel.generatorModel.generatorStyle == .photoExpand {
- // setUpExpandAreaView()
- // }
- }
-
- // func setUpExpandAreaView(){
- // netWorkImageView.addSubview(expandAreaView)
- // expandAreaView.snp.makeConstraints { make in
- // make.top.leading.trailing.bottom.equalTo(0)
- // }
- //
- // expandAreaView.showImageView.isHidden = true
- // expandAreaView.boardView.isHidden = true
- //
- // if let sizes = self.viewModel.generatorModel.expandViewSizes {
- // expandAreaView.updateExpandAreaView(width: sizes.0.width, height: sizes.0.height)
- // expandAreaView.updateImageView(width: sizes.1.width, height: sizes.1.height)
- // }
- // }
- //保存功能
- @objc func clickSaveBtn(){
- guard let infoModel = infoModel else { return }
- // if viewModel.generatorModel.generatorStyle == .photoLive{
- // TSDownloadManager.getDownLoadVideo(urlString: infoModel.response.resultUrl) { url, success in
- // if let url = url {
- // PhotoManagerShared.saveVideoToAlbum(videoURL: url) { [weak self] success, error in
- // guard let self = self else { return }
- // if success {
- // isSavePhotoMark = true
- // kSaveSuccesswShared.show(atView:self.view)
- // }else{
- // debugPrint(error)
- // }
- // }
- // }
- // }
- // }else{
- TSImageStoreTool.downloadImageWithProgress(urlString: infoModel.response.resultUrl) { image in
- if let image = image {
- PhotoManagerShared.saveImageToAlbum(image) { [weak self] success, error in
- guard let self = self else { return }
- if success {
- kSaveSuccesswShared.show(atView:self.view)
- }else{
- debugPrint(error)
- }
- }
- }
- }
- // }
- }
-
- override func navBarClickLeftAction() {
- dismiss(animated: true)
- }
-
- @objc func clickNavRight() {
- TSCustomAlertController.show(in: self, config: TSCustomAlertController.AlertConfig(
- message: "Are you sure to delete?".localized,
- cancelTitle: "Delete".localized,
- cancelColor: .red,
- confirmTitle: "Retain".localized,
- confirmColor: .white,
- cancelAction: { [weak self] in
- guard let self = self else { return }
- self.deleteBlock?()
- self.navBarClickLeftAction()
- }
- ))
- }
- }
- extension TSAIPhotoDetailsVC {
-
-
- func updateImageView(){
-
- kMainAsync {
- self.uploadPanComparisonView()
- }
-
-
- // self.netWorkImageView.setAsyncImage(urlString:infoModel.response.resultUrl,placeholder:kPlaceholderImage)
- }
-
- func uploadPanComparisonView(){
- guard let infoModel = infoModel else { return }
- DispatchQueue.global(qos: .userInitiated).async {
- var oldImage:UIImage?
- var newImage:UIImage?
- let grounp = DispatchGroup()
- grounp.enter()
- TSImageStoreTool.downloadImageWithProgress(urlString: infoModel.request.imageUrl) { image in
- grounp.leave()
- oldImage = image
-
- }
-
- grounp.enter()
- TSImageStoreTool.downloadImageWithProgress(urlString: infoModel.response.resultUrl) { image in
- grounp.leave()
- newImage = image
- }
-
- grounp.notify(queue: .main) {
- if let oldImage = oldImage,let newImage = newImage {
- let size = oldImage.size.height > newImage.size.height ? oldImage.size : newImage.size
- self.panComparisonView.snp.updateConstraints { make in
- make.height.equalTo(kGetUIWdith(designSize: size, currentW: k_ScreenWidth))
- }
- }
-
- self.panComparisonView.configure(oldImage: oldImage, newImage: newImage)
- }
- }
- }
- @objc func switchOriginalPictureTouchDown() {
- // if viewModel.generatorModel.generatorStyle == .photoExpand {
- // expandAreaView.onlyBgImage(only: false)
- // }else{
- // guard let infoModel = infoModel else { return }
- // self.netWorkImageView.setAsyncImage(urlString: infoModel.request.imageUrl,placeholder:kPlaceholderImage)
- // }
- }
-
- @objc func switchOriginalPictureTouchUp() {
- guard let infoModel = infoModel else { return }
-
- // if viewModel.generatorModel.generatorStyle == .photoExpand {
- // expandAreaView.onlyBgImage(only: true)
- // }else{
- // self.netWorkImageView.setAsyncImage(urlString:infoModel.response.resultUrl,placeholder:kPlaceholderImage)
- // }
- }
- }
|