2016-09-23 87 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