Должен ли я хранить изображение разного размера для разного размера компонента изображения, чтобы повысить производительность?

Я работаю в React Native с компонентом Image, и мне нужно использовать одно и то же изображение в нескольких местах с разным размером. Как изображение профиля пользователя по адресу:

  1. В профиле с большим кругом примерно на половину высоты устройства - 600x600px,
  2. В остальных разделах контактов в списке контактов в виде миниатюрного изображения - 80x80px,
  3. В разделе чата, отправляющем изображение другому пользователю, сообщение с изображением появится в небольшом поле размером 200x200 пикселей.

Меня беспокоит, следует ли мне создать обрезанную / сжатую версию небольшого точного размера изображения для каждого размера, указанного выше, или я должен везде использовать изображение исходного размера, например 1000x1000, независимо от размера компонента изображения

  1. Если я создам обрезанную версию каждого изображения идеального размера, тогда на устройстве будет использоваться много памяти и
  2. Если я использую исходное изображение (загруженное вне курса), то компоненту React-native Image может потребоваться много усилий, чтобы обрезать его до идеального размера. Это может привести к снижению производительности.

Помогите пожалуйста с правильным подходом.

Нет «правильного» подхода. Он будет полностью основан на том, что вы считаете разумным компромиссом между сложностью, производительностью и объемом передаваемых данных.

Robert Harvey 01.01.2019 03:53

Что вы предпочитаете из двух вышеперечисленных подходов?

Shubham1164 01.01.2019 03:54

Тот, который наиболее эффективно соответствует моим конкретным требованиям.

Robert Harvey 01.01.2019 03:54
0
3
75
2

Ответы 2

Поскольку response native следует шаблону Интернета, поэтому он достаточно умен, чтобы сжать размер изображения, чтобы довести его до размера используемого вами компонента изображения, для сжатия размера может потребоваться некоторое время, что кажется более жизнеспособным решением. чем самостоятельно создавать сжатую копию для каждого актива. Активы могут постоянно меняться, поэтому их будет сложно отследить.

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

Вам необходимо отобразить определенное изображение с сервера на определенном экране. Для загрузки изображения вы можете использовать FastImage.

Другие вопросы по теме