在drawRect(Swift)中绘制时图像略有模糊

Kex*_*Kex 1 core-graphics uiimage ios swift

我正在Swift中构建一个圆形裁剪功能.我几乎都有工作,但是当我保存裁剪的照片时,它有点模糊:

在此输入图像描述

在此输入图像描述

不确定它是否在这里可见但在我的iPhone上我可以看到差异,轻微模糊.我的放大幅度不超过图像的实际尺寸.我正在使用UIScrollView,最大缩放系数设置为1.0.裁剪代码是:

  func didTapOk() {

    let scale = scrollView.zoomScale
    let newSize = CGSize(width: image!.size.width*scale, height: image!.size.height*scale)
    let offset = scrollView.contentOffset

    UIGraphicsBeginImageContext(CGSize(width: 240, height: 240))
    let circlePath = UIBezierPath(ovalInRect: CGRect(x: 0, y: 0, width: 240, height: 240))
    circlePath.addClip()
    var sharpRect = CGRect(x: -offset.x, y: -offset.y, width: newSize.width, height: newSize.height)
    sharpRect = CGRectIntegral(sharpRect)

    image?.drawInRect(sharpRect)
    let finalImage = UIGraphicsGetImageFromCurrentImageContext()
    UIImageWriteToSavedPhotosAlbum(finalImage, nil, nil, nil)

}
Run Code Online (Sandbox Code Playgroud)

在这里,我试图用来CGRectIntegral改善结果,但它似乎没有任何区别.有什么指示我可以做些什么来改善这个?

Tom*_*you 8

发生的事情是你的作物模糊,因为它没有考虑你的屏幕比例(无论你是否使用视网膜显示器等).

使用UIGraphicsBeginImageContextWithOptions(CGSize(width: 240, height: 240), true, 0)占视网膜屏幕.请在此处查看有关如何使用此功能的更多详细信息.