IOS Swift Kingfisher Resize 处理器结果图像模糊

IOS Swift Kingfisher Resize processor result blurry image

我正在开发一个应用程序,使用 Kingfisher 库从 ulr 加载图像并在 CollectionViewCell 中显示。我正在尝试调整图像大小以适应 CollectionViewCellContentview

我已经尝试从库中 ResizeProcessorScaleFactor,但结果图像似乎 blur。我的实现如下(函数在 CellForRowAtIndexPath 中调用)

let url = photo.flickrImageURL("m")
        let size = contentView.frame.size
        print("size is \(size.debugDescription)")
        let resizeProcessor = ResizingImageProcessor(referenceSize: size, mode: .aspectFit)
        self.flickrPhoto.kf.setImage(with: url, options: [.backgroundDecode,.processor(resizeProcessor), .scaleFactor(UIScreen.main.scale),.cacheOriginalImage])

有没有我做错了什么? images画质好像很模糊

您应该将 referenceSize 设置为 imageView 的大小而不是 contentView。因为您的 contentView 的大小将大于您的 imageView

使用以下代码更改您的代码:

let size = self.flickrPhoto.frame.size

已更新

刚刚发现 ResizingImageProcessor 适用于像素而不是点,因此您需要将比例乘以图像大小,如下所示:

let resizingProcessor = ResizingImageProcessor(referenceSize: CGSize(width: self.flickrPhoto.frame.size.width * UIScreen.main.scale, height: self.flickrPhoto.frame.size.height * UIScreen.main.scale))