in application/PhotoToSketch/PhotoToSketch/EffectApplyScreen/EffectApplyViewController.swift [171:209]
func applyEffect(effect : PhotoEffect){
PhotoToSketchLoader.instance.showLoader()
let imageData:Data = targetImage.pngData() ?? Data()
let imageBase64 = imageData.base64EncodedString()
let effectType = effect.id
let parameters = "{\n \"image\" : \"\(imageBase64)\",\n \"effectType\" : \"\(effectType)\"\n}"
let postData = parameters.data(using: .utf8)
var request = URLRequest(url: URL(string: "https://v79143dgn5.execute-api.us-east-1.amazonaws.com/production/apply")!,timeoutInterval: Double.infinity)
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpMethod = "POST"
request.httpBody = postData
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data else {
print(String(describing: error))
PhotoToSketchLoader.instance.hideLoader()
return
}
let stringResult = String(data: data, encoding: .utf8)!
let jsonData = Data(stringResult.utf8)
let responseObject: ResponseResult = try! JSONDecoder().decode(ResponseResult.self, from: jsonData)
//print("RESULT : \(responseObject.image ?? "NO IMAGE")")
DispatchQueue.main.async {
let imgDecoded = self.decodeBase64(toImage: responseObject.image)
let imgMirrored = UIImage(cgImage: imgDecoded.cgImage!, scale: 1.0, orientation: .leftMirrored)
let resultImg = imgMirrored //.rotate(radians: .pi/2)
self.processedImage = resultImg
self.targetImageView.image = resultImg
self.targetImageView.alpha = 1.0
}
PhotoToSketchLoader.instance.hideLoader()
}
task.resume()
}