From 4994628b9541f20334a01e8f374f243ea157faaa Mon Sep 17 00:00:00 2001 From: nixzhu Date: Wed, 28 Oct 2015 11:27:14 +0800 Subject: [PATCH] fix EditProfile change avatar use camera (use not scale version) --- Yep/Extensions/UIImage+Yep.swift | 23 +++++++++++++++++++ .../EditProfileViewController.swift | 2 +- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/Yep/Extensions/UIImage+Yep.swift b/Yep/Extensions/UIImage+Yep.swift index a3cf3acf..23760920 100644 --- a/Yep/Extensions/UIImage+Yep.swift +++ b/Yep/Extensions/UIImage+Yep.swift @@ -11,6 +11,29 @@ import Ruler extension UIImage { + func largestCenteredSquareImage() -> UIImage { + let scale = self.scale + + let originalWidth = self.size.width * scale + let originalHeight = self.size.height * scale + + let edge: CGFloat + if originalWidth > originalHeight { + edge = originalHeight + } else { + edge = originalWidth + } + + let posX = (originalWidth - edge) / 2.0 + let posY = (originalHeight - edge) / 2.0 + + let cropSquare = CGRectMake(posX, posY, edge, edge) + + let imageRef = CGImageCreateWithImageInRect(self.CGImage, cropSquare)! + + return UIImage(CGImage: imageRef, scale: scale, orientation: self.imageOrientation) + } + func resizeToTargetSize(targetSize: CGSize) -> UIImage { let size = self.size diff --git a/Yep/ViewControllers/EditProfile/EditProfileViewController.swift b/Yep/ViewControllers/EditProfile/EditProfileViewController.swift index 250bcfa1..2f70fc97 100644 --- a/Yep/ViewControllers/EditProfile/EditProfileViewController.swift +++ b/Yep/ViewControllers/EditProfile/EditProfileViewController.swift @@ -420,7 +420,7 @@ extension EditProfileViewController: UIImagePickerControllerDelegate, UINavigati YepHUD.showActivityIndicator() - let image = image.navi_centerCropWithSize(YepConfig.avatarMaxSize())! + let image = image.largestCenteredSquareImage().resizeToTargetSize(YepConfig.avatarMaxSize()) let imageData = UIImageJPEGRepresentation(image, YepConfig.avatarCompressionQuality()) s3UploadFileOfKind(.Avatar, inFilePath: nil, orFileData: imageData, mimeType: MessageMediaType.Image.mineType, failureHandler: { (reason, errorMessage) in