2016-09-23 127 views
0

我有一個應用程序,包括用戶的個人資料圖片。用戶選擇他們想要的照片後,它會自動使用以下基本的UIImage擴展裁剪:裁剪UIImage方向/拉伸

func crop() -> UIImage { 

    let imageRef:CGImageRef = CGImageCreateWithImageInRect(self.CGImage, CGRectMake(0, self.size.height/2 - self.size.width/2, self.size.width, self.size.width))! 
    let cropped:UIImage = UIImage(CGImage:imageRef) 

    return cropped 

} 

它可以正常工作對大多數照片,但由於某些原因,有時它改變照片的方向,有時拉伸照片。以下是每個所以你的照片能明白我的意思:

Wrong Orientation

Stretching/Compressing

我已經閱讀了很多關於錯誤的方向帖子,仍然不明白這有什麼錯我上面的代碼。此外,我還沒有看到有關拉伸/壓縮照片的任何內容。

有沒有人有任何想法可以解決這些問題?

在此先感謝!

+0

照片有自己的'imageOrientation'財產,你應該實例化'cropped'圖像時考慮到。應該可以通過'UIImageView'的'contentMode'屬性來修復。 –

回答

0

使用您用手機拍攝的這

image.layer.borderWidth = 1.0 
image.layer.masksToBounds = false 
image.layer.borderColor = UIColor.whiteColor().CGColor 
image.layer.cornerRadius = image.frame.size.width/2 
image.clipsToBounds = true 
+0

我應該如何在我的擴展中使用它? –

+0

將你想要的圖像裁剪成圖像(uiimage),然後使用此代碼 – Soul