IOS Swift Kingfisher Resize Результат процессора размытого изображения - PullRequest
0 голосов
/ 19 октября 2018

Я разрабатываю приложение, используя библиотеку Kingfisher для загрузки image из ulr и отображения в CollectionViewCell.Я пытаюсь изменить размер изображения, чтобы оно соответствовало Contentview из CollectionViewCell.Я пробовал ResizeProcessor и 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])

Есть что-то, что я сделал не так?Качество images кажется очень размытым.

1 Ответ

0 голосов
/ 19 октября 2018

Вы должны установить 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))
...