如何在swift ios中减小图像大小

如何在swift ios中减小图像大小,ios,swift,image,Ios,Swift,Image,我想减少像这个网站的图像大小 使用下面的代码后,我的图像大小为1080 x 360 120kb 但是当我使用这个网站时,我得到了58kb 或者是否有压缩JPEG文件的库或算法 func resizeImage(_ image: UIImage, newHeight: CGFloat) -> UIImage { let scale = newHeight / image.size.height let newWidth = image.size.width * scale

我想减少像这个网站的图像大小 使用下面的代码后,我的图像大小为1080 x 360 120kb 但是当我使用这个网站时,我得到了58kb 或者是否有压缩JPEG文件的库或算法

func resizeImage(_ image: UIImage, newHeight: CGFloat) -> UIImage {
    let scale = newHeight / image.size.height
    let newWidth = image.size.width * scale
    UIGraphicsBeginImageContext(CGSize(width: newWidth, height: newHeight))
    image.draw(in: CGRect(x: 0, y: 0, width: newWidth, height: newHeight))
    let newImage = UIGraphicsGetImageFromCurrentImageContext()
    let imageData = UIImageJPEGRepresentation(newImage!, 0.5)! as Data
    UIGraphicsEndImageContext()
    return UIImage(data:imageData)!
}

传递到
UIImageJPEGRepresentation
的压缩质量决定了JPEG图像的图像质量。如果您有0.5,请尝试更低的值,如0.1:

让imageData=UIImageJPEGRepresentation(newImage!,0.1)!作为数据

来自苹果的文档:

压缩质量
生成的JPEG图像的质量,表示为0.0到1.0之间的值。值0.0表示最大压缩(或最低质量),而值1.0表示最小压缩(或最佳质量)。

传递到
UIImageJPEGRepresentation
的压缩质量决定了JPEG图像的图像质量。如果您有0.5,请尝试更低的值,如0.1:

让imageData=UIImageJPEGRepresentation(newImage!,0.1)!作为数据

来自苹果的文档:

压缩质量
生成的JPEG图像的质量,表示为0.0到1.0之间的值。值0.0表示最大压缩(或最低质量),而值1.0表示最小压缩(或最佳质量)。

使用更高的压缩值。使用更高的压缩值。但是当我设置为0.1时,图像看起来会非常糟糕。这是图像压缩的折衷方案。您可以在0.1和0.5之间的任意位置尝试不同的值,以查看其中是否有任何值能够提供足够好的质量和所需的文件大小。也许0.35或0.4会更好。但是当我把0.1放进去时,图像看起来会很糟糕。是的,这是图像压缩的折衷方案。您可以在0.1和0.5之间的任意位置尝试不同的值,以查看其中是否有任何值能够提供足够好的质量和所需的文件大小。也许0.35或0.4会更好。