我有一个真实的问题。我使用以下算法进行图像大小调整和共享。
func resizeImageWith(newSize: CGSize) -> UIImage {
let horizontalRatio = newSize.width / size.width
let verticalRatio = newSize.height / size.height
let ratio = max(horizontalRatio, verticalRatio)
let newSize = CGSize(width: size.width * ratio, height: size.height * ratio)
UIGraphicsBeginImageContextWithOptions(newSize, true, 0)
draw(in: CGRect(origin: CGPoint(x: 0, y: 0), size: newSize))
let newImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return newImage!
}
func shareImageToSM(image : UIImage) {
let imageToShare = [ image ]
let activityVC = UIActivityViewController(activityItems: imageToShare, applicationActivities: nil)
//New Excluded Activities Code
if #available(iOS 9.0, *) {
activityVC.excludedActivityTypes = [UIActivityType.airDrop, UIActivityType.addToReadingList, UIActivityType.openInIBooks]
} else {
activityVC.excludedActivityTypes = [UIActivityType.airDrop, UIActivityType.addToReadingList]
}
//
activityVC.popoverPresentationController?.sourceView = self.view
self.present(activityVC, animated: true, completion: nil)
}
它正确调整图像大小。就像它将我的600x600图像缩小到150x150
但是,当我尝试保存或共享缩小的图像时,它会获得与实际图像相同的大小,但会变得模糊。请参阅以下图片。
这是已保存/共享的已调整大小的图片(150x150) 我希望这个图像以150x150维度保存/共享,但实际上更高的像素质量,如下图所示。请帮助我,这对我来说是一个严重的问题和头痛。