Browse Source

git commit

Kan1aSorata 2 years ago
parent
commit
ee9d0b8dc8

+ 4 - 4
AIPaint.xcworkspace/xcuserdata/fengyuhe.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -46,8 +46,8 @@
             filePath = "AIPaint/DrawViewController.swift"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "273"
-            endingLineNumber = "273"
+            startingLineNumber = "274"
+            endingLineNumber = "274"
             landmarkName = "translatePrompt(prompt:negativePrompt:completion:)"
             landmarkType = "7">
          </BreakpointContent>
@@ -62,8 +62,8 @@
             filePath = "AIPaint/DrawViewController.swift"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "274"
-            endingLineNumber = "274"
+            startingLineNumber = "275"
+            endingLineNumber = "275"
             landmarkName = "translatePrompt(prompt:negativePrompt:completion:)"
             landmarkType = "7">
          </BreakpointContent>

+ 94 - 53
AIPaint/DrawViewController.swift

@@ -29,6 +29,7 @@ class DrawViewController: UIViewController, UIScrollViewDelegate, UIImagePickerC
         textField.placeholder = "请输入你的作品的组成元素,以空格分割。"
         textField.backgroundColor = .white
         textField.layer.cornerRadius = 14.0
+        textField.returnKeyType = .done
         return textField
     }()
     
@@ -37,6 +38,7 @@ class DrawViewController: UIViewController, UIScrollViewDelegate, UIImagePickerC
         textField.placeholder = "请输入你不想在作品中看到的元素,以空格分割。"
         textField.backgroundColor = .white
         textField.layer.cornerRadius = 14.0
+        textField.returnKeyType = .done
         return textField
     }()
     
@@ -84,8 +86,8 @@ class DrawViewController: UIViewController, UIScrollViewDelegate, UIImagePickerC
     
     lazy var uploadImage: UIImageView = {
         var imageView = UIImageView()
-//        let singleGusture = UITapGestureRecognizer(target: self, action: #selector(pickPhotoFromAlbum))
-//        imageView.addGestureRecognizer(singleGusture)
+        let singleGusture = UITapGestureRecognizer(target: self, action: #selector(pickPhotoFromAlbum))
+        imageView.addGestureRecognizer(singleGusture)
         imageView.isUserInteractionEnabled = true
         return imageView
     }()
@@ -100,6 +102,7 @@ class DrawViewController: UIViewController, UIScrollViewDelegate, UIImagePickerC
     var painting: Painting?
     let alertController = UIAlertController(title: "保存成功!", message: nil, preferredStyle: .alert)
     let userDefaults = UserDefaults.standard
+    var pickedImage: UIImage?
     
     override func viewDidLoad() {
         super.viewDidLoad()
@@ -142,8 +145,8 @@ class DrawViewController: UIViewController, UIScrollViewDelegate, UIImagePickerC
         generateView.snp.makeConstraints { (make) in
             make.top.equalTo(drawModeView.contentLayoutGuide.snp.top)
             make.centerX.equalTo(view.safeAreaLayoutGuide.snp.centerX)
-            make.left.equalTo(drawModeView.contentLayoutGuide.snp.left)
-            make.right.equalTo(drawModeView.contentLayoutGuide.snp.right)
+            make.left.equalTo(drawModeView.contentLayoutGuide.snp.left).offset(5)
+            make.right.equalTo(drawModeView.contentLayoutGuide.snp.right).offset(-5)
             make.height.equalTo(drawModeView.contentLayoutGuide.snp.width).multipliedBy(0.75)
         }
         
@@ -155,6 +158,8 @@ class DrawViewController: UIViewController, UIScrollViewDelegate, UIImagePickerC
             make.centerX.equalTo(generateView.snp.centerX)
         }
         
+        promptTextField.delegate = self
+        
         negativePromptTextField.snp.makeConstraints { (make) in
             make.top.equalTo(promptTextField.snp.bottom).offset(5)
             make.left.equalTo(generateView.snp.left).offset(5)
@@ -163,6 +168,8 @@ class DrawViewController: UIViewController, UIScrollViewDelegate, UIImagePickerC
             make.centerX.equalTo(generateView.snp.centerX)
         }
         
+        negativePromptTextField.delegate = self
+        
         generateButton.snp.makeConstraints { (make) in
             make.top.equalTo(negativePromptTextField.snp.bottom).offset(5)
             make.width.equalTo(generateView.snp.width).multipliedBy(0.97)
@@ -179,7 +186,7 @@ class DrawViewController: UIViewController, UIScrollViewDelegate, UIImagePickerC
             make.left.equalTo(drawModeView.contentLayoutGuide.snp.left).offset(5)
             make.right.equalTo(drawModeView.contentLayoutGuide.snp.right).offset(-5)
             make.centerX.equalTo(drawModeView.contentLayoutGuide.snp.centerX)
-            make.height.equalTo(imageUploadView.snp.width).multipliedBy(3)
+            make.height.equalTo(imageUploadView.snp.width).multipliedBy(0.4)
         }
         
         pic2PicLabel.snp.makeConstraints { (make) in
@@ -196,28 +203,26 @@ class DrawViewController: UIViewController, UIScrollViewDelegate, UIImagePickerC
             make.right.equalTo(imageUploadView.snp.right).offset(-5)
         }
         
-//        drawModeView.addSubview(remindText)
-//        drawModeView.addSubview(generateImage)
-        
-//        generateImage.snp.makeConstraints { (make) in
-//            make.top.equalTo(imageUploadView.snp.bottom).offset(10)
-//            make.width.equalTo(drawModeView.contentLayoutGuide.snp.width).offset(0.98)
-//            make.centerX.equalTo(drawModeView.contentLayoutGuide.snp.centerX)
-//            make.height.equalTo(800)
-//        }
-//
-//        remindText.snp.makeConstraints { (make) in
-//            make.top.equalTo(generateImage.snp.top).offset(2)
-//            make.width.equalTo(generateImage.snp.width)
-//            make.height.equalTo(generateImage.snp.height).multipliedBy(0.40)
-//            make.centerX.equalTo(generateImage.snp.centerX)
-//        }
+        drawModeView.addSubview(remindText)
+        drawModeView.addSubview(generateImage)
+
+        generateImage.snp.makeConstraints { (make) in
+            make.top.equalTo(imageUploadView.snp.bottom).offset(10)
+            make.left.equalTo(drawModeView.contentLayoutGuide.snp.left).offset(5)
+            make.right.equalTo(drawModeView.contentLayoutGuide.snp.right).offset(-5)
+            make.centerX.equalTo(drawModeView.contentLayoutGuide.snp.centerX)
+            make.height.equalTo(generateImage.snp.width)
+            make.bottom.equalTo(drawModeView.contentLayoutGuide.snp.bottom)
+        }
+
+        remindText.snp.makeConstraints { (make) in
+            make.top.equalTo(generateImage.snp.top).offset(2)
+            make.width.equalTo(generateImage.snp.width)
+            make.height.equalTo(generateImage.snp.height).multipliedBy(0.40)
+            make.centerX.equalTo(generateImage.snp.centerX)
+        }
     }
     
-//    override func viewDidLayoutSubviews() {
-//        self.drawModeView.contentSize = CGSize(width: 500, height: 1500)
-//    }
-    
     override func viewWillAppear(_ animated: Bool) {
         if !userDefaults.bool(forKey: UserDefaultKeys.UserInfo.isLogin) {
             generateButton.setTitle("请登录后使用", for: .normal)
@@ -228,10 +233,6 @@ class DrawViewController: UIViewController, UIScrollViewDelegate, UIImagePickerC
         }
     }
     
-    func scrollViewDidScroll(_ scrollView: UIScrollView) {
-        print("x:\(scrollView.contentOffset.x) y:\(scrollView.contentOffset.y)")
-    }
-    
     func translatePrompt(prompt: String, negativePrompt: String, completion: @escaping (_ tranPrompt: String, _ tranNegativePrompt: String) -> Void) {
         let APP_KEY = "3bb96f14d2af67ec"
         let APP_SECRET = "SRQF1jGwAMuYciFK33KfyRGKa7B1x38u"
@@ -339,34 +340,66 @@ class DrawViewController: UIViewController, UIScrollViewDelegate, UIImagePickerC
             guard let userID = userDefaults.string(forKey: UserDefaultKeys.UserInfo.userId) else {
                 return
             }
-            
-            let postData: [String: String] = ["userId": userID, "prompt": prompt, "negPrompt": negativePrompt, "sessionHash": sessionHash]
-            
-            AF.request(APIs.Draw.Text2Pic, method: .post, parameters: postData, encoder: URLEncodedFormParameterEncoder.default).response { [self] response in
-                switch response.result {
-                case .success(let data):
-                    guard let json = try? JSON(data: data!) else {
-                        return
-                    }
-                    let imageAddr = json["result"].stringValue
-                    let addrProcess = imageAddr.replacingOccurrences(of: "\\", with: "/")
-                    let url = URL(string: addrProcess)
-                    generateImage.downloadedFrom(link: addrProcess)
-                    let dataTask = URLSession.shared.dataTask(with: url!) { [self] (data, response, error) in
-                        painting?.image = data
-                        saveContext()
+            if pickedImage != nil {
+                let imgBase64 = pickedImage?.pngData()?.base64EncodedString()
+                
+                let imgStr = "data:image/png;base64," + imgBase64!
+                let postData: [String: String] = ["userId": userID, "img": imgStr, "prompt": prompt, "negPrompt": negativePrompt, "sessionHash": sessionHash]
+                AF.request(APIs.Draw.Pic2Pic, method: .post, parameters: postData, encoder: URLEncodedFormParameterEncoder.default).response { [self] response in
+                    switch response.result {
+                    case .success(let data):
+                        guard let json = try? JSON(data: data!) else {
+                            return
+                        }
+                        let imageAddr = json["result"].stringValue
+                        let addrProcess = imageAddr.replacingOccurrences(of: "\\", with: "/")
+                        let url = URL(string: addrProcess)
+                        generateImage.downloadedFrom(link: addrProcess)
+                        let dataTask = URLSession.shared.dataTask(with: url!) { [self] (data, response, error) in
+                            painting?.image = data
+                            saveContext()
+                        }
+                        dataTask.resume()
+                        DispatchQueue.main.async { [self] in
+                                self.generateButton.backgroundColor = .blue
+                                self.generateButton.isUserInteractionEnabled = true
+                        }
+                        break
+                    case .failure(let error):
+                        print(error)
+                        break
                     }
-                    dataTask.resume()
-                    DispatchQueue.main.async { [self] in
-                            self.generateButton.backgroundColor = .blue
-                            self.generateButton.isUserInteractionEnabled = true
+                }
+            } else {
+                let postData: [String: String] = ["userId": userID, "prompt": prompt, "negPrompt": negativePrompt, "sessionHash": sessionHash]
+                
+                AF.request(APIs.Draw.Text2Pic, method: .post, parameters: postData, encoder: URLEncodedFormParameterEncoder.default).response { [self] response in
+                    switch response.result {
+                    case .success(let data):
+                        guard let json = try? JSON(data: data!) else {
+                            return
+                        }
+                        let imageAddr = json["result"].stringValue
+                        let addrProcess = imageAddr.replacingOccurrences(of: "\\", with: "/")
+                        let url = URL(string: addrProcess)
+                        generateImage.downloadedFrom(link: addrProcess)
+                        let dataTask = URLSession.shared.dataTask(with: url!) { [self] (data, response, error) in
+                            painting?.image = data
+                            saveContext()
+                        }
+                        dataTask.resume()
+                        DispatchQueue.main.async { [self] in
+                                self.generateButton.backgroundColor = .blue
+                                self.generateButton.isUserInteractionEnabled = true
+                        }
+                        break
+                    case .failure(let error):
+                        print(error)
+                        break
                     }
-                    break
-                case .failure(let error):
-                    print(error)
-                    break
                 }
             }
+            
         }
         generateButton.backgroundColor = .gray
         generateButton.isUserInteractionEnabled = false
@@ -394,6 +427,7 @@ class DrawViewController: UIViewController, UIScrollViewDelegate, UIImagePickerC
             image = info[.originalImage] as? UIImage
         }
         uploadImage.image = image
+        pickedImage = image
         picker.dismiss(animated: true)
     }
     
@@ -483,3 +517,10 @@ class DrawViewController: UIViewController, UIScrollViewDelegate, UIImagePickerC
             }
     }
 }
+
+extension DrawViewController: UITextFieldDelegate {
+    func textFieldShouldReturn(_ textField: UITextField) -> Bool {
+        self.view?.endEditing(false)
+        return true
+    }
+}

+ 1 - 0
AIPaint/Model/struct/APIs.swift

@@ -17,6 +17,7 @@ struct APIs {
     }
     struct Draw{
         static let Text2Pic = "http://hefengyu.org:8080/draw/text2pic"
+        static let Pic2Pic = "http://192.168.31.109:8080/draw/pic2pic"
     }
     struct YouDao {
         static let TextTranslate = "https://openapi.youdao.com/"