ios swift - 使用图像截断缩放图像

时间:2016-03-31 18:31:11

标签: ios swift uiimage scale

我将图像传递给此方法以缩放图像并返回不是水平的图像,该图像将保存在文档目录中;然而,该方法在某种程度上截断了图像侧面的四分之一英寸。

请告知..

   func scaleImageWithImage(image: UIImage, size:CGSize)-> UIImage{
        let scale:CGFloat = max(size.width/image.size.width, size.height/image.size.height)
        let width: CGFloat = image.size.width * scale
        let height: CGFloat = image.size.height * scale
        let imageRect: CGRect = CGRectMake((size.width-width)/2.0, (size.height - height) / 2.0, width, height)

        UIGraphicsBeginImageContextWithOptions(size, false, 0)
        image.drawInRect(imageRect)
        let newImage: UIImage = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()

        return newImage
    }

1 个答案:

答案 0 :(得分:0)

您正在绘制rect imageRect,但图形上下文本身的大小为size。因此,如果size小于imageRect.size,您就会在边缘丢失一些信息。此外,imageRect不会从0,0开始 - 它的来源是(size.width-width)/2.0, (size.height-height)/2.0 - 所以如果它的原点从原点正向移动,那么另一边会有空白区域,并且如果从原点向负移动,您将在那个边缘丢失一些信息。