如何在Swift中调整图片大小?

我正在使用 和Parse.com开发适用于iOS的应用程序

我试图让用户从图像选择器中选择一张图片,然后将所选图像的大小调整为200x200像素,然后再上传到我的后端。

Parse.com有一个用于Instagram复制应用程序的教程,名为“ AnyPic”,其中提供了用于调整图像大小的代码,但这是在Objective-

C中。

// Resize the image to be square (what is shown in the preview)

UIImage *resizedImage = [anImage resizedImageWithContentMode:UIViewContentModeScaleAspectFit

bounds:CGSizeMake(560.0f, 560.0f)

interpolationQuality:kCGInterpolationHigh];

// Create a thumbnail and add a corner radius for use in table views

UIImage *thumbnailImage = [anImage thumbnailImage:86.0f

transparentBorder:0.0f

cornerRadius:10.0f

interpolationQuality:kCGInterpolationDefault];

回答:

有关更多详细信息,请参阅我的博客文章, 。

快速调整图像尺寸的功能如下。

func resizeImage(image: UIImage, targetSize: CGSize) -> UIImage {

let size = image.size

let widthRatio = targetSize.width / size.width

let heightRatio = targetSize.height / size.height

// Figure out what our orientation is, and use that to form the rectangle

var newSize: CGSize

if(widthRatio > heightRatio) {

newSize = CGSizeMake(size.width * heightRatio, size.height * heightRatio)

} else {

newSize = CGSizeMake(size.width * widthRatio, size.height * widthRatio)

}

// This is the rect that we've calculated out and this is what is actually used below

let rect = CGRectMake(0, 0, newSize.width, newSize.height)

// Actually do the resizing to the rect using the ImageContext stuff

UIGraphicsBeginImageContextWithOptions(newSize, false, 1.0)

image.drawInRect(rect)

let newImage = UIGraphicsGetImageFromCurrentImageContext()

UIGraphicsEndImageContext()

return newImage

}

使用上面的功能并使用200 * 200调整图像大小,如下代码

self.resizeImage(UIImage(named: "yourImageName")!, targetSize: CGSizeMake(200.0, 200.0))

 func resizeImage(image: UIImage, targetSize: CGSize) -> UIImage {

let size = image.size

let widthRatio = targetSize.width / size.width

let heightRatio = targetSize.height / size.height

// Figure out what our orientation is, and use that to form the rectangle

var newSize: CGSize

if(widthRatio > heightRatio) {

newSize = CGSize(width: size.width * heightRatio, height: size.height * heightRatio)

} else {

newSize = CGSize(width: size.width * widthRatio, height: size.height * widthRatio)

}

// This is the rect that we've calculated out and this is what is actually used below

let rect = CGRect(x: 0, y: 0, width: newSize.width, height: newSize.height)

// Actually do the resizing to the rect using the ImageContext stuff

UIGraphicsBeginImageContextWithOptions(newSize, false, 1.0)

image.draw(in: rect)

let newImage = UIGraphicsGetImageFromCurrentImageContext()

UIGraphicsEndImageContext()

return newImage!

}

以上是 如何在Swift中调整图片大小? 的全部内容, 来源链接: utcz.com/qa/415980.html

回到顶部