我将图像传递给此方法以缩放图像并返回不是水平的图像,该图像将保存在文档目录中;然而,该方法在某种程度上截断了图像侧面的四分之一英寸。
请告知..
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
}
答案 0 :(得分:0)
您正在绘制rect imageRect
,但图形上下文本身的大小为size
。因此,如果size
小于imageRect.size
,您就会在边缘丢失一些信息。此外,imageRect
不会从0,0
开始 - 它的来源是(size.width-width)/2.0, (size.height-height)/2.0
- 所以如果它的原点从原点正向移动,那么另一边会有空白区域,并且如果从原点向负移动,您将在那个边缘丢失一些信息。