gpt4 book ai didi

ios - 在 drawRect 中绘制时图像略微模糊(Swift)

转载 作者:搜寻专家 更新时间:2023-11-01 05:46:06 24 4
gpt4 key购买 nike

我正在 Swift 中构建一个圆形裁剪函数。我几乎一切正常,但是当我保存裁剪后的照片时,它有点模糊:

enter image description here

enter image description here

不确定它在这里是否可见,但在我的 iPhone 上我可以看到差异,轻微模糊。我没有放大超过图像的实际大小。我正在使用最大缩放因子设置为 1.0 的 UIScrollView。裁剪代码是:

  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)

}

我在这里尝试使用 CGRectIntegral 来改善结果,但它似乎没有任何区别。关于我可以做些什么来改善这一点的任何指示?

最佳答案

发生的事情是您的裁剪图变得模糊,因为它没有考虑屏幕的比例(无论您使用的是 Retina 显示器等)。

使用 UIGraphicsBeginImageContextWithOptions(CGSize(width: 240, height: 240), true, 0) 考虑视网膜屏幕。检查here有关如何使用此功能的更多详细信息。

关于ios - 在 drawRect 中绘制时图像略微模糊(Swift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35556543/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com