Оптимизация изображения с помощью библиотеки Kingfisher в iOS при загрузке изображения?

Я загружаю изображения в список с сервера. Размер UIImageView очень маленький (40 х 40), поэтому в идеале в него должно быть загружено изображение размером 40 х 40 или чуть больше. Однако парень с сервера отправляет изображение гораздо большего размера (1920 x 1200).

Когда я диагностировал память контроллера представления, я заметил, что она увеличивается по мере загрузки изображения.

Итак, мой вопрос

  • Будет ли библиотека Kingfisher загружать уменьшенную версию изображения?

  • Будет ли прервана загрузка изображения, если размер изображения слишком велик?

Есть ли способ, с помощью которого я могу конкретно выполнить вышеуказанную задачу.

Зимородок: https://github.com/onevcat/Kingfisher


person TechChain    schedule 09.02.2018    source источник
comment
см. этот stackoverflow.com/questions/31966885/   -  person Anbu.Karthik    schedule 09.02.2018
comment
Я не спрашиваю о том, как изменить размер изображения.   -  person TechChain    schedule 09.02.2018
comment
Я отредактировал ваш вопрос, пытаясь сделать его более понятным. Если я что-то неправильно понял, не стесняйтесь указать на это. (Или изменить его обратно)   -  person Pochi    schedule 09.02.2018


Ответы (1)


Будет ли библиотека Kingfisher загружать уменьшенную версию изображения?

Ни Kingfisher, ни любая другая библиотека не загрузит уменьшенную версию изображения. Сервер должен отправить вам уменьшенную версию. (другой URL или тот же URL с параметром)

Будет ли прервана загрузка изображения, если размер изображения слишком велик?

Я не знаю, как библиотека реализует загрузку, но если вы не говорите о неоправданно больших файлах (намного больше ожидаемого вами разрешения (1920x1200)), она не будет прервана. И даже в этом случае оно, вероятно, не будет прервано, но вместо этого приложение может быть уничтожено системой при отображении изображений сверхвысокого разрешения (опять же, намного больше, чем 1920 x 1200).

Есть ли способ, с помощью которого я могу конкретно выполнить вышеуказанную задачу.

Если вы хотите отображать много изображений одновременно и беспокоитесь об их размерах, лучше создать их миниатюры.

Вы можете использовать Kingfisher для

1) сначала скачать образ

2) затем изменить размер изображения

3) затем показать и кэшировать его, если вам нужно

Проверьте эту страницу, чтобы увидеть множество фрагментов кода для этой библиотеки.

https://github.com/onevcat/Kingfisher/wiki/Cheat-Sheet

person Pochi    schedule 09.02.2018
comment
дхирадж - следуйте этому ответу - person Anbu.Karthik; 09.02.2018