use*_*930 1 uiimageview uiimage ios swift
在我的应用程序中,我让用户将他的图像上传到我的亚马逊 s3 存储桶。一旦用户从手机捕获照片,我就会将其显示在屏幕上,然后开始上传。此时,我开始显示进度条,告诉用户现在的体育场是什么。但是有没有办法让图像在上传时变灰并在上传完成后显示原始颜色?
\n\n到目前为止我的代码如下:
\n\nfunc imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage, editingInfo: [String : AnyObject]?) {\n\n let path = NSTemporaryDirectory().stringByAppendingString("image.jpeg")\n\n if let data = UIImageJPEGRepresentation(image, 0.8) {\n data.writeToFile(path, atomically: true)\n\n }\n\n self.dismissViewControllerAnimated(true, completion: {})\n\n let credentialsProvider = AWSCognitoCredentialsProvider(regionType:CognitoRegionType,\n identityPoolId:CognitoIdentityPoolId)\n let configuration = AWSServiceConfiguration(region:CognitoRegionType, credentialsProvider:credentialsProvider)\n AWSServiceManager.defaultServiceManager().defaultServiceConfiguration = configuration\n\n let ext = "jpeg"\n\n let uploadRequest = AWSS3TransferManagerUploadRequest()\n uploadRequest.body = NSURL(string: "file://"+path)\n uploadRequest.key = NSProcessInfo.processInfo().globallyUniqueString + "." + ext\n uploadRequest.bucket = S3BucketName\n uploadRequest.contentType = "image/" + ext\n\n\n//here I would like to present a greyed out photo until it\'s fully uploaded:\n imageView.image = image\n\n\n progressBar.hidden = false\n uploadRequest.uploadProgress = { (bytesSent, totalBytesSent, totalBytesExpectedToSend) -> Void in\n dispatch_async(dispatch_get_main_queue(), { () -> Void in\n if totalBytesExpectedToSend > 0 {\n self.progressBar.progress = Float(Double(totalBytesSent) / Double(totalBytesExpectedToSend))\n\n }\n })\n }\n let transferManager = AWSS3TransferManager.defaultS3TransferManager()\n transferManager.upload(uploadRequest).continueWithBlock { (task) -> AnyObject! in\n if let error = task.error {\n print("Upload failed \xe2\x9d\x8c (\\(error))")\n }\n if let exception = task.exception {\n print("Upload failed \xe2\x9d\x8c (\\(exception))")\n }\n if task.result != nil {\n\n\n\n let s3URL = NSURL(string: "http://s3-eu-west-1.amazonaws.com/\\(S3BucketName)/\\(uploadRequest.key!)")!\n //print("Uploaded to:\\n\\(s3URL)")\n self.photoURL = s3URL.absoluteString\n print(self.photoURL)\n\n }\n else {\n print("Unexpected empty result.")\n }\n return nil\n }\n\n\n}\nRun Code Online (Sandbox Code Playgroud)\n
下面的类别将允许将您的图像变成黑白图像,而无需更改初始图像(不确定您的情况下“灰色”到底意味着什么,但您可以轻松尝试)。(斯威夫特 4)
extension UIImage {
var grayed: UIImage {
guard let ciImage = CIImage(image: self)
else { return self }
let filterParameters = [ kCIInputColorKey: CIColor.white, kCIInputIntensityKey: 1.0 ] as [String: Any]
let grayscale = ciImage.applyingFilter("CIColorMonochrome", parameters: filterParameters)
return UIImage(ciImage: grayscale)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5061 次 |
| 最近记录: |