Kingfisher에서 RoundCornerImageProcessor를 사용하면 흰색 배경색이 되는 문제가 있어요.

3419 단어 SwiftKingfisheriOS

ImageProcessor


Kingfisher에서 가져온 이미지를 편집한 후 적용하는 ImageProcessor
let cirlceImageProcessor = RoundCornerImageProcessor(cornerRadius: CGFloat.greatestFiniteMagnitude)
let options: KingfisherOptionsInfo = [.processor(cirlceImageProcessor)]
setImage(with: resource, options: options)
그리고 이렇게 쓰면 각환을 더해서 표시할 수 있다.

배경이 하얘지는 문제.



이런 경우는 극히 드물다

까닭


jpg 이미지가 jpg에 캐시되어 있기 때문입니다.
처음 그릴 때는 draw로 마스크 뒤에 그리고, 두 번째 이동할 때는 디스크 캐시에서 꺼내서 바로 표시합니다.jpg에 투명한 정보가 없어서 하얘졌어요.

대책


pg 캐시로 OK.
캐시 정책은cacheSerializer 옵션을 통해 지정할 수 있습니다
let cirlceImageProcessor = RoundCornerImageProcessor(cornerRadius: CGFloat.greatestFiniteMagnitude)
let options: KingfisherOptionsInfo = [.processor(cirlceImageProcessor), .cacheSerializer(FormatIndicatedCacheSerializer.png)]
let url = URL(string: "https://www-tc.pbs.org/wnet/nature/files/2017/09/x1WLcZn-asset-mezzanine-16x9-6kkb4dA.jpg")
iv.kf.setImage(with: url, options: options)

주의점


이미 jpg 캐시를 사용하면 그것을 끌어올릴 수 있으니 주의해야 한다

참고 문헌


이쪽 issue로 없앴어요.

좋은 웹페이지 즐겨찾기