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

时间:2018-10-19 04:18:42

标签: ios swift kingfisher

我正在开发一个使用Kingfisher库的应用,以从ulr加载image并在CollectionViewCell中显示。我正在尝试调整图像大小以适合Contentview的{​​{1}}。我从库中尝试了CollectionViewCellResizeProcessor,但是结果图像似乎为ScaleFactor。我的实现方式如下(函数在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]) 的质量似乎很模糊。

1 个答案:

答案 0 :(得分:2)

您应将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))