|
@@ -18,6 +18,108 @@ enum TSGeneratorImageStyle {
|
|
|
case photoQuality //照片变高清
|
|
|
case motherDay //母亲节
|
|
|
case catTohuman //猫变人
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ var imageMaxKb:Int{
|
|
|
+ switch self {
|
|
|
+ case .ageOld:
|
|
|
+ return 10*1024
|
|
|
+ case .ageChild:
|
|
|
+ return 10*1024
|
|
|
+ case .oldPhoto:
|
|
|
+ return 5*1024
|
|
|
+ case .eyeOpen:
|
|
|
+ return 5*1024
|
|
|
+ case .pretty:
|
|
|
+ return 5*1024
|
|
|
+ case .photoLive:
|
|
|
+ return 10*1024
|
|
|
+ case .photoExpand:
|
|
|
+ return 10*1024
|
|
|
+ case .photoQuality:
|
|
|
+ return 10*1024
|
|
|
+ case .motherDay:
|
|
|
+ return 10*1024
|
|
|
+ case .catTohuman:
|
|
|
+ return 10*1024
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ var imageMaxBitSize:Int{
|
|
|
+ switch self {
|
|
|
+ case .ageOld:
|
|
|
+ return kUploadImageMaxBit10Size
|
|
|
+ case .ageChild:
|
|
|
+ return kUploadImageMaxBit10Size
|
|
|
+ case .oldPhoto:
|
|
|
+ return kUploadImageMaxBit5Size
|
|
|
+ case .eyeOpen:
|
|
|
+ return kUploadImageMaxBit5Size
|
|
|
+ case .pretty:
|
|
|
+ return kUploadImageMaxBit5Size
|
|
|
+ case .photoLive:
|
|
|
+ return kUploadImageMaxBit10Size
|
|
|
+ case .photoExpand:
|
|
|
+ return kUploadImageMaxBit10Size
|
|
|
+ case .photoQuality:
|
|
|
+ return kUploadImageMaxBit10Size
|
|
|
+ case .motherDay:
|
|
|
+ return kUploadImageMaxBit10Size
|
|
|
+ case .catTohuman:
|
|
|
+ return kUploadImageMaxBit10Size
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ var userDefaultsKey:String{
|
|
|
+ switch self {
|
|
|
+ case .ageOld:
|
|
|
+ return "isFirstAIListAgeOldHintVC"
|
|
|
+ case .ageChild:
|
|
|
+ return "isFirstAIListAgeChildHintVC"
|
|
|
+ case .oldPhoto:
|
|
|
+ return "isFirstAIChangeRestOldPhoto"
|
|
|
+ case .eyeOpen:
|
|
|
+ return "isFirstAIEyeOpenPhoto"
|
|
|
+ case .pretty:
|
|
|
+ return "isFirstAIPrettyPhoto"
|
|
|
+ case .photoLive:
|
|
|
+ return "isFirstAILivePhoto"
|
|
|
+ case .photoExpand:
|
|
|
+ return ""
|
|
|
+ case .photoQuality:
|
|
|
+ return ""
|
|
|
+ case .motherDay:
|
|
|
+ return "isFirstAIMotherDay"
|
|
|
+ case .catTohuman:
|
|
|
+ return "isFirstAICatTohuman"
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ var config:TSAIListHintBaseVC.Config{
|
|
|
+ switch self {
|
|
|
+ case .ageOld:
|
|
|
+ return .defaultConfig
|
|
|
+ case .ageChild:
|
|
|
+ return .defaultConfig
|
|
|
+ case .oldPhoto:
|
|
|
+ return .getDefaultConfig(imageMaxBitSize: imageMaxBitSize)
|
|
|
+ case .eyeOpen:
|
|
|
+ return .getDefaultConfig(imageMaxBitSize: imageMaxBitSize)
|
|
|
+ case .pretty:
|
|
|
+ return .getDefaultConfig(imageMaxBitSize:imageMaxBitSize)
|
|
|
+ case .photoLive:
|
|
|
+ return .getDefaultConfig(imageMaxBitSize: imageMaxBitSize)
|
|
|
+ case .photoExpand:
|
|
|
+ return .getDefaultConfig(imageMaxBitSize:imageMaxBitSize)
|
|
|
+ case .photoQuality:
|
|
|
+ return .defaultConfig
|
|
|
+ case .motherDay:
|
|
|
+ return .getDefaultConfig(imageMaxBitSize: imageMaxBitSize)
|
|
|
+ case .catTohuman:
|
|
|
+ return .catTohumanConfig
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
class TSAIUploadPhotoBaseVC: TSBaseVC {
|
|
@@ -42,6 +144,8 @@ class TSAIUploadPhotoBaseVC: TSBaseVC {
|
|
|
let photoPickerManager = TSPhotoPickerManager(viewController: self)
|
|
|
return photoPickerManager
|
|
|
}()
|
|
|
+
|
|
|
+ var hintBaseVC:TSAIListHintBaseVC = TSAIListHintBaseVC(config: .defaultConfig)
|
|
|
//#####################################底部基础#####################################
|
|
|
lazy var cusStackView: TSCustomStackView = {
|
|
|
let cusStackView = TSCustomStackView(axis: .vertical,spacing: 0)
|
|
@@ -232,6 +336,7 @@ extension TSAIUploadPhotoBaseVC {
|
|
|
}
|
|
|
|
|
|
if generatorStyle == .catTohuman {
|
|
|
+ cusStackView.addSpacing(length: 24)
|
|
|
cusStackView.addSubviewToStackWhiteBoard(segmentedView, length: 46)
|
|
|
segmentedView.snp.makeConstraints { make in
|
|
|
make.width.equalTo(k_ScreenWidth-70)
|
|
@@ -292,14 +397,17 @@ extension TSAIUploadPhotoBaseVC {
|
|
|
}
|
|
|
|
|
|
func pickSinglePhoto() {
|
|
|
-// photoPickerManager.pickSinglePhoto(maxBitSize: imageMaxBitSize) { [weak self] image, errorString in
|
|
|
- photoPickerManager.pickCustomSinglePhoto() { [weak self] image, errorString in
|
|
|
- guard let self = self else { return }
|
|
|
- if let errorString = errorString {
|
|
|
- TSToastShared.showToast(text: errorString)
|
|
|
- }else{
|
|
|
- upLoadImage = image
|
|
|
- }
|
|
|
+// photoPickerManager.pickCustomSinglePhoto() { [weak self] image, errorString in
|
|
|
+// guard let self = self else { return }
|
|
|
+// if let errorString = errorString {
|
|
|
+// TSToastShared.showToast(text: errorString)
|
|
|
+// }else{
|
|
|
+// upLoadImage = image
|
|
|
+// }
|
|
|
+// }
|
|
|
+ enterSelectPhotos(userDefaultsKey: generatorStyle.userDefaultsKey, maxBitSize: generatorStyle.imageMaxBitSize, config: generatorStyle.config) { [weak self] image in
|
|
|
+ guard let self = self else { return }
|
|
|
+ upLoadImage = image
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -347,3 +455,55 @@ extension TSAIUploadPhotoBaseVC {
|
|
|
}
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+extension TSAIUploadPhotoBaseVC{
|
|
|
+
|
|
|
+ func enterSelectPhotos(userDefaultsKey:String,maxBitSize:Int,config:TSAIListHintBaseVC.Config,complete: @escaping (UIImage)->Void){
|
|
|
+ if userDefaultsKey.count == 0 {
|
|
|
+ self.pickSinglePhoto(maxBitSize:maxBitSize,complete:complete)
|
|
|
+ }else{
|
|
|
+ TSAIListHintBaseVC.userDefaultsKey = userDefaultsKey
|
|
|
+ if TSAIListHintBaseVC.isShowUploadImageHint{
|
|
|
+ TSAIListHintBaseVC.isShowUploadImageHint = false
|
|
|
+ self.presentModalHintVC(config:config,complete:complete)
|
|
|
+ }else {
|
|
|
+ self.pickSinglePhoto(maxBitSize:maxBitSize,complete:complete)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ func presentModalHintVC(config:TSAIListHintBaseVC.Config,complete:@escaping (UIImage)->Void){
|
|
|
+ hintBaseVC = TSAIListHintBaseVC(config: config) { [weak self] image in
|
|
|
+ guard let self = self else { return }
|
|
|
+ if let image = image {
|
|
|
+ complete(image)
|
|
|
+ }else{
|
|
|
+ dePrint("图片异常")
|
|
|
+ }
|
|
|
+ kDelayMainShort {
|
|
|
+ self.hintBaseVC.dismissPageVC()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ kPresentModalVC(target: self, modelVC: hintBaseVC,transitionStyle: .crossDissolve)
|
|
|
+ }
|
|
|
+
|
|
|
+ func pickSinglePhoto(maxBitSize:Int,complete: @escaping (UIImage)->Void) {
|
|
|
+// photoPickerManager.pickSinglePhoto(maxBitSize: maxBitSize) { [weak self] image, errorString in
|
|
|
+ photoPickerManager.pickCustomSinglePhoto() { [weak self] image, errorString in
|
|
|
+ guard let self = self else { return }
|
|
|
+ if let errorString = errorString {
|
|
|
+ TSToastShared.showToast(text: errorString)
|
|
|
+ }else if let image = image {
|
|
|
+ complete(image)
|
|
|
+ }else{
|
|
|
+ dePrint("图片异常")
|
|
|
+ }
|
|
|
+ kDelayMainShort {
|
|
|
+ self.photoPickerManager.dismissPageVC()
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|