合并图像时如何避免低质量?

How to avoid low quality when merging images?

我正在使用这个功能:

var size = CGSize(width: 320, height: 358) // 348
    UIGraphicsBeginImageContext(size)
    //let areaSize = CGRect(x: 0, y: 0, width: size.width, height: size.height)
    let areaSize = CGRect(x: 20, y: 5, width: size.width-40, height: size.height-30)
    let areaSizeTop = CGRect(x: 0, y: 0, width: size.width, height: size.height)
    bottomImage.drawInRect(areaSize)
    topImage.drawInRect(areaSizeTop, blendMode: kCGBlendModeNormal, alpha: 1) //0.8 default
    var newImage:UIImage = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()
    return newImage

合并两个不同的图像 (A) + (B),但是当我这样做时,最终图像 (C) 的质量非常低,我该如何解决?是否需要编写一些代码来使 (C) 图像看起来更好?这是(C,合并)图像的屏幕:

您应该使用 UIGraphicsBeginImageContextWithOptions,并传入 0 比例。使用 0 比例会使其与当前设备屏幕的比例相匹配。 (视网膜设备的视网膜)

通过调用 UIGraphicsBeginImageContext,您强制输出图像为非视网膜图像。在 Retina 设备上(除 iPad 2 之外的所有当前设备),您将失去一半的分辨率。这可能是您遇到问题的原因。

正如@Daij-Djan 在他的评论中指出的那样,您正在创建一个非常小的图像。一旦修复了开始图像上下文调用,如果您有更大的输出图像,您可能想要设置更大的图像上下文。