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

Lê *_*inh 5 ios swift kingfisher

我正在开发一个使用 Kingfisher 库从 ulr 加载图像并在CollectionViewCell. 我正在尝试调整图像大小以Contentview适合CollectionViewCell.

我已经从图书馆尝试过,但结果图像ResizeProcessor似乎。我的实现如下(函数在中调用)ScaleFactorblurCellForRowAtIndexPath

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])
Run Code Online (Sandbox Code Playgroud)

我是不是做错了什么?质量images看起来很模糊。

iVa*_*run 6

您应该将referenceSize大小设置为 ,imageView而不是contentView。因为你的尺寸contentView会比你的大imageView

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

let size = self.flickrPhoto.frame.size
Run Code Online (Sandbox Code Playgroud)

更新

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

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