ЕГЭ Информатика Тест задание 9 Скорость передачи, объем памяти, время передачи
ЕГЭ Информатика Тест задание 9 Скорость передачи, объем памяти, время передачиПравильно | Ошибки | Пустые ответы |
---|---|---|
×
Подготовка к ЕГЭ по Информатике
Задания на тему «Скорость передачи, объем памяти, время передачи».
Категория вопросов: Все категории задания Нахождение объема графического файла Нахождение объема звукового файла Скорость передачи1) Для хранения произвольного растрового изображения размером 128×320 пикселей отведено 40 Кбайт памяти без учёта размера заголовка файла.
Ваш ответ:
2) Автоматическая камера производит растровые изображения размером 200×256 пикселей. Для кодирования цвета каждого пикселя используется одинаковое количество бит, коды пикселей записываются в файл один за другим без промежутков. Объём файла с изображением не может превышать 65 Кбайт без учёта размера заголовка файла. Какое максимальное количество цветов можно использовать в палитре?
Ваш ответ:
3) Документ объёмом 40 Мбайт можно передать с одного компьютера на другой двумя способами.
А. Сжать архиватором, передать архив по каналу связи, распаковать.
Б. Передать по каналу связи без использования архиватора.
Какой способ быстрее и насколько, если: средняя скорость передачи данных по каналу связи составляет 223 бит в секунду; объём сжатого архиватором документа равен 90% исходного; время, требуемое на сжатие документа, – 16 секунд, на распаковку – 2 секунды?
В ответе напишите букву А, если быстрее способ А, или Б, если быстрее способ Б.
Единицы измерения «секунд», «сек.», «с» к ответу добавлять не нужно.
Ваш ответ:
4) Производилась двухканальная (стерео) звукозапись с частотой дискретизации 64 кГц и 24-битным разрешением. В результате был получен файл размером 120 Мбайт, сжатие данных не производилось. Определите приблизительно, сколько времени (в минутах) производилась запись.
Ваш ответ:
Ваш ответ:
Ваш ответ:
7) Музыкальный фрагмент был оцифрован и записан в виде файла без использования сжатия данных. Получившийся файл был передан в город А по каналу связи за 15 секунд. Затем тот же музыкальный фрагмент был оцифрован повторно с разрешением в 2 раза выше и частотой дискретизации в 1,5 раза меньше, чем в первый раз. Сжатие данных не производилось. Полученный файл был передан в город Б; пропускная способность канала связи с городом Б в 2 раза выше, чем канала связи с городом А. Сколько секунд длилась передача файла в город Б? В ответе запишите только целое число, единицу измерения писать не нужно.
Ваш ответ:
8) Автоматическая фотокамера производит растровые изображения размером 640×480 пикселей. При этом объём файла с изображением не может превышать 320 Кбайт, упаковка данных не производится. Какое максимальное количество цветов можно использовать в палитре?
Ваш ответ:
9) Музыкальный фрагмент был записан в формате моно, оцифрован и сохранён в виде файла без использования сжатия данных. Размер полученного файла – 24 Мбайт. Затем тот же музыкальный фрагмент был записан повторно в формате стерео (двухканальная запись) и оцифрован с разрешением в 4 раза выше и частотой дискретизации в 1,5 раза меньше, чем в первый раз. Сжатие данных не производилось. Укажите размер файла в Мбайт, полученного при повторной записи.
Ваш ответ:
10) Музыкальный фрагмент был оцифрован и записан в виде файла без использования сжатия данных. Получившийся файл был передан в город А по каналу связи за 96 секунд. Затем тот же музыкальный фрагмент был оцифрован повторно с разрешением в 4 раза выше и частотой дискретизации в 3 раза ниже, чем в первый раз. Сжатие данных не производилось. Полученный файл был передан в город Б за 16 секунд. Во сколько раз скорость пропускная способность канала в город Б больше пропускной способности канала в город А?
Ваш ответ:
11) Музыкальный фрагмент был оцифрован и записан в виде файла без использования сжатия данных. Получившийся файл был передан в город А по каналу связи за 45 секунд. Затем тот же музыкальный фрагмент был оцифрован повторно с разрешением в 4 раза ниже и частотой дискретизации в 12 раз выше, чем в первый раз. Сжатие данных не производилось. Полученный файл был передан в город Б за 15 секунд. Во сколько раз скорость пропускная способность канала в город Б больше пропускной способности канала в город А?
Ваш ответ:
12) Рисунок размером 512 на 256 пикселей занимает в памяти 64 Кбайт (без учёта сжатия). Найдите максимально возможное количество цветов в палитре изображения
Ваш ответ:
13) После преобразования растрового 256-цветного графического файла в 16-цветный формат его размер уменьшился на 15 Кбайт. Каков был размер исходного файла в Кбайтах?
Ваш ответ:
14) После преобразования растрового 256-цветного графического файла в черно-белый формат (2 цвета) его размер уменьшился на 7 Кбайт. Каков был размер исходного файла в Кбайтах?
Ваш ответ:
15) Камера делает фотоснимки 800 на 600 пикселей. При этом объём файла с изображением не может превышать 200 Кбайт, упаковка данных не производится. Какое максимальное количество цветов можно использовать в палитре изображения?
Ваш ответ:
16) Музыкальный фрагмент был оцифрован и записан в виде файла без использования сжатия данных. Получившийся файл был передан в город А по каналу связи за 25 секунд. Затем тот же музыкальный фрагмент был оцифрован повторно с разрешением в 7 раза выше и частотой дискретизации в 2,5 раза меньше, чем в первый раз. Сжатие данных не производилось. Полученный файл был передан в город Б; пропускная способность канала связи с городом Б в 2 раза выше, чем канала связи с городом А. Сколько секунд длилась передача файла в город Б? В ответе запишите только целое число, единицу измерения писать не нужно.
Ваш ответ:
17) Какой объём памяти (в Кбайт) потребуется, чтобы сохранить растровое изображение размером 64×64 пикселов при условии, что в изображении могут использоваться 256 различных цветов?
Ваш ответ:
18) Найдите объем графического изображения, имеющего размер 800×640 пикселей, и состоящего из 256 цветов. Ответ укажите в килобайтах
Ваш ответ:
19) Найдите объем графического изображения, имеющего размер 1024×800 пикселей, и состоящего из 8192 цветов. Ответ укажите в килобайтах
Ваш ответ:
Хранение изображений
Хранение изображений
№ id 911
Какой минимальный объём памяти (в Кбайт) нужно зарезервировать, чтобы можно было сохранить любое растровое изображение размером 128 на 256 пикселов при условии, что в изображении могут использоваться 64 различных цвета? В ответе запишите только целое число, единицу измерения писать не нужно.
Тип:Хранение изображений. Нахождение объёма
Источник: Сборник задач К.Ю. Полякова
Открыть решение
X
Решение
№ id 912
Какой минимальный объём памяти (в Кбайт) нужно зарезервировать, чтобы можно было сохранить любое растровое изображение размером 128 на 128 пикселов при условии, что в изображении могут использоваться 32 различных цвета? В ответе запишите только целое число, единицу измерения писать не нужно.
Тип:Хранение изображений. Нахождение объёма
Источник: Сборник задач К.Ю. Полякова
Открыть решение
X
Решение
№ id 913
Какой минимальный объём памяти (в Кбайт) нужно зарезервировать, чтобы можно было сохранить любое растровое изображение размером 64 на 128 пикселов при условии, что в изображении могут использоваться 128 различных цветов? В ответе запишите только целое число, единицу измерения писать не нужно.
Тип:Хранение изображений. Нахождение объёма
Источник: Сборник задач К.Ю. Полякова
№ id 914
Какой минимальный объём памяти (в Кбайт) нужно зарезервировать, чтобы можно было сохранить любое растровое изображение размером 64 на 256 пикселов при условии, что в изображении могут использоваться 256 различных цветов? В ответе запишите только целое число, единицу измерения писать не нужно.
Тип:Хранение изображений. Нахождение объёма
Источник: Сборник задач К.Ю. Полякова
№ id 915
Какой минимальный объём памяти (в Кбайт) нужно зарезервировать, чтобы можно было сохранить любое растровое изображение размером 32 на 1024 пикселов при условии, что в изображении могут использоваться 128 различных цветов? В ответе запишите только целое число, единицу измерения писать не нужно.
Тип:Хранение изображений. Нахождение объёма
Источник: Сборник задач К.Ю. Полякова
№ id 916
Какой минимальный объём памяти (в Кбайт) нужно зарезервировать, чтобы можно было сохранить любое растровое изображение размером 1024 на 512 пикселов при условии, что в изображении могут использоваться 64 различных цвета? В ответе запишите только целое число, единицу измерения писать не нужно.
Тип:Хранение изображений. Нахождение объёма
Источник: Сборник задач К.Ю. Полякова
№ id 917
Какой минимальный объём памяти (в Кбайт) нужно зарезервировать, чтобы можно было сохранить любое растровое изображение размером 512 на 256 пикселов при условии, что в изображении могут использоваться 32 различных цвета? В ответе запишите только целое число, единицу измерения писать не нужно.
Тип:Хранение изображений. Нахождение объёма
Источник: Сборник задач К.Ю. Полякова
№ id 918
Какой минимальный объём памяти (в Кбайт) нужно зарезервировать, чтобы можно было сохранить любое растровое изображение размером 512 на 128 пикселов при условии, что в изображении могут использоваться 16 различных цветов? В ответе запишите только целое число, единицу измерения писать не нужно.
Тип:Хранение изображений. Нахождение объёма
Источник: Сборник задач К.Ю. Полякова
№ id 919
Какой минимальный объём памяти (в Кбайт) нужно зарезервировать, чтобы можно было сохранить любое растровое изображение размером 256 на 128 пикселов при условии, что в изображении могут использоваться 8 различных цветов? В ответе запишите только целое число, единицу измерения писать не нужно.
Тип:Хранение изображений. Нахождение объёма
Источник: Сборник задач К.Ю. Полякова
№ id 921
Какой минимальный объём памяти (в Кбайт) нужно зарезервировать, чтобы можно было сохранить любое растровое изображение размером 128 на 128 пикселов при условии, что в изображении могут использоваться 256 различных цветов? В ответе запишите только целое число, единицу измерения писать не нужно.
Тип:Хранение изображений. Нахождение объёма
Источник: Сборник задач К.Ю. Полякова
№ id 3660
Давным-давно, когда 640 Кбайт хватало «на всё», лучшие компьютеры поддерживали максимальное разрешение 640х480 пикселей. Известно, что каждый пиксель мог быть окрашен в один из 16 цветов. Определите объем памяти видеобуфера (памяти необходимой для хранения одной картинки) в килобайтах.
Тип:Хранение изображений. Нахождение объёма
Источник: А. Богданов
Открыть решение
№ id 936
После преобразования растрового графического файла его объем уменьшился в 1,5 раза. Сколько цветов было в палитре первоначально, если после преобразования было получено растровое изображение того же разрешения в 16-цветной палитре?
Тип:Поиск количества цветов после преобразования
Источник: Сборник задач К.Ю. Полякова
Открыть решение
X
Решение
№ id 938
Цветное изображение было оцифровано и сохранено в виде файла без использования сжатия данных. Размер полученного файла – 54 Мбайт. Затем то же изображение было оцифровано повторно с разрешением в 2 раза больше и глубиной кодирования цвета в 3 раза меньше по сравнению с первоначальными параметрами. Сжатие данных не производилось. Укажите размер файла в Мбайт, полученного при повторной оцифровке.
Тип:Размер графического файла после повторной оцифровки
Источник: С. Логинова
Открыть решение
X
Решение
№ id 939
Цветное изображение было оцифровано и сохранено в виде файла без использования сжатия данных. Размер полученного файла – 42 Мбайт. Затем то же изображение было оцифровано повторно с разрешением в 2 раза меньше и глубиной кодирования цвета увеличили в 4 раза больше по сравнению с первоначальными параметрами. Сжатие данных не производилось. Укажите размер файла в Мбайт, полученного при повторной оцифровке.
Тип:Размер графического файла после повторной оцифровки
Источник: С. Логинова
Открыть решение
X
Решение
№ id 3656
Изображение размером 12 Мбайт сжимают для экономии памяти. Известно, что разрешение уменьшили вдвое, а цветовую палитру с 215 = 32768 цветов сократили до 1024 цветов. Сколько Мбайт займет сжатый файл?
Тип:Размер графического файла после повторной оцифровки
Источник: Е. Джобс
Открыть решение
X
Решение
№ id 954
Автоматическая фотокамера делает фотографии высокого разрешения с палитрой, содержащей 224 = 16 777 216 цветов. Средний размер фотографии составляет 15 Мбайт. Для хранения в базе данных фотографии преобразуют в формат с палитрой, содержащей 256 цветов. Другие преобразования и дополнительные методы сжатия не используются. Сколько Мбайт составляет средний размер преобразованной фотографии?
Тип:Поиск размера графического файла после преобразования 2
Источник: Сборник задач К.Ю. Полякова
Открыть решение
X
Решение
№ id 955
Автоматическая фотокамера делает фотографии высокого разрешения с палитрой, содержащей 224 = 16 777 216 цветов. Средний размер фотографии составляет 12 Мбайт. Для хранения в базе данных фотографии преобразуют в формат с палитрой, содержащей 216 = 65536 цветов. Другие преобразования и дополнительные методы сжатия не используются. Сколько Мбайт составляет средний размер преобразованной фотографии?
Тип:Поиск размера графического файла после преобразования 2
Источник: Сборник задач К.Ю. Полякова
№ id 956
Автоматическая фотокамера делает фотографии высокого разрешения с палитрой, содержащей 224 = 16 777 216 цветов. Средний размер фотографии составляет 6 Мбайт. Для хранения в базе данных фотографии преобразуют в формат с палитрой, содержащей 16 цветов. Другие преобразования и дополнительные методы сжатия не используются. Сколько Мбайт составляет средний размер преобразованной фотографии?
Тип:Поиск размера графического файла после преобразования 2
Источник: Сборник задач К.Ю. Полякова
№ id 971
Автоматическая фотокамера каждые 10 с создаёт черно-белое растровое изображение, содержащее 256 оттенков. Размер изображения – 512 x 192 пикселей. Все полученные изображения и коды пикселей внутри одного изображения записываются подряд, никакая дополнительная информация не сохраняется, данные не сжимаются. Сколько Мбайтов нужно выделить для хранения всех изображений, полученных за сутки?
Тип:Выделение памяти для хранения изображений полученных за некоторое время
Источник: Сборник задач К.Ю. Полякова
Открыть решение
X
Решение
№ id 972
Автоматическая фотокамера каждые 5 с создаёт черно-белое растровое изображение, содержащее 256 оттенков. Размер изображения – 256 x 512 пикселей. Все полученные изображения и коды пикселей внутри одного изображения записываются подряд, никакая дополнительная информация не сохраняется, данные не сжимаются. Сколько Мбайтов нужно выделить для хранения всех изображений, полученных за сутки?
Тип:Выделение памяти для хранения изображений полученных за некоторое время
Источник: Сборник задач К.Ю. Полякова
№ id 973
Автоматическая фотокамера каждые 3 с создаёт черно-белое растровое изображение, содержащее 256 оттенков. Размер изображения – 128 x 192 пикселей. Все полученные изображения и коды пикселей внутри одного изображения записываются подряд, никакая дополнительная информация не сохраняется, данные не сжимаются. Сколько Мбайтов нужно выделить для хранения всех изображений, полученных за сутки?
Тип:Выделение памяти для хранения изображений полученных за некоторое время
Источник: Сборник задач К.Ю. Полякова
№ id 974
Автоматическая фотокамера каждые 6 с создаёт черно-белое растровое изображение, содержащее 256 оттенков. Размер изображения – 128 x 256 пикселей. Все полученные изображения и коды пикселей внутри одного изображения записываются подряд, никакая дополнительная информация не сохраняется, данные не сжимаются. Сколько Мбайтов нужно выделить для хранения всех изображений, полученных за сутки?
Тип:Выделение памяти для хранения изображений полученных за некоторое время
Источник: Сборник задач К.Ю. Полякова
№ id 975
Автоматическая фотокамера каждую секунду создаёт растровое изображение, содержащее 216=65536 цветов. Размер изображения – 640 x 480 пикселей. Все полученные изображения и коды пикселей внутри одного изображения записываются подряд, никакая дополнительная информация не сохраняется, данные не сжимаются. Сколько Мбайт нужно выделить для хранения всех изображений, полученных за 128 секунд? В ответе укажите только целое число – количество Мбайт, единицу измерения указывать не надо.
Тип:Выделение памяти для хранения изображений полученных за некоторое время
Источник: А. Кабанов
№ id 976
Автоматическая фотокамера каждые 15 секунд создаёт растровое изображение, содержащее 256 цветов. Размер изображения – 240 x 320 пикселей. Все полученные изображения и коды пикселей внутри одного изображения записываются подряд, никакая дополнительная информация не сохраняется, данные не сжимаются. Сколько Кбайт нужно выделить для хранения всех изображений, полученных за 1 минуту? В ответе укажите только целое число – количество Кбайт, единицу измерения указывать не надо.
Тип:Выделение памяти для хранения изображений полученных за некоторое время
Источник: А. Кабанов
№ id 977
Автоматическая фотокамера каждые 10 секунд создаёт растровое изображение. Размер изображения – 1536 x 1024 пикселей. Все полученные изображения и коды пикселей внутри одного изображения записываются подряд, никакая дополнительная информация не сохраняется, данные не сжимаются. Все изображения, полученные за 1 минуту, занимают 9 Мбайт. Найдите максимально возможное количество цветов в палитре изображения.
Тип:Поиск количества цветов в палитре. Изображения созданные за некоторое время
Источник: А. Кабанов
Открыть решение
X
Решение
№ id 3645
Автоматическая камера производит растровые изображения размером 800×600 пикселей. Для кодирования цвета каждого пикселя используется одинаковое количество байт, коды пикселей записываются в файл один за другим без промежутков. Объём файла с изображением не может превышать 700 Кбайт без учёта размера заголовка файла. Какое максимальное количество цветов можно использовать в палитре?
Тип:Поиск количества цветов. Выделение одинакового количества байт на пиксель
Источник: А. Минак
№ id 3654
Автоматическая камера производит растровые изображения размером 1280х1920 пикселей. Для кодирования цвета каждого пикселя используется одинаковое количество бит, коды пикселей записываются в файл один за другим без промежутков. Объем файла с одним изображением не может превышать 1500 Кбайт без учета размера заголовка файла. Какое максимальное количество цветов можно использовать в палитре?
Тип:Поиск количества цветов тип 2
Источник: Е. Джобс
№ id 3655
Автоматическая камера производит растровые изображения размером 640х1280 пикселей. Для кодирования цвета каждого пикселя используется одинаковое количество бит, коды пикселей записываются в файл один за другим без промежутков. Объем файла с одним изображением не может превышать 500 Кбайт без учета размера заголовка файла. Какое максимальное количество цветов можно использовать в палитре?
Тип:Поиск количества цветов тип 2
Источник: Е. Джобс
№ id 3657
В информационной системе хранятся изображения размером 2048 × 1600 пикселей. При кодировании используется алгоритм сжатия изображений, позволяющий уменьшить размер памяти для хранения одного изображения в среднем в 8 раз по сравнению с независимым кодированием каждого пикселя. Каждое изображение дополняется служебной информацией, которая занимает 64 Кбайт. Для хранения 32 изображений выделено 12 Мбайт памяти. Какое максимальное количество цветов можно использовать в палитре каждого изображения?
Тип:Поиск количества цветов в палитре. Дополнительные сведения.
Источник: Сборник задач К.Ю. Полякова
Открыть решение
X
Решение
№ id 3658
В информационной системе хранятся изображения размером 1600 × 1200 пикселей. При кодировании используется алгоритм сжатия изображений, позволяющий уменьшить размер памяти для хранения одного изображения в среднем в 5 раз по сравнению с независимым кодированием каждого пикселя. Каждое изображение дополняется служебной информацией, которая занимает 100 Кбайт. Для хранения 32 изображений выделено 10 Мбайт памяти. Какое максимальное количество цветов можно использовать в палитре каждого изображения?
Тип:Поиск количества цветов в палитре. Дополнительные сведения.
Источник: Сборник задач К.Ю. Полякова
№ id 3659
В информационной системе хранятся изображения размером 1024 × 768 пикселей. При кодировании используется алгоритм сжатия изображений, позволяющий уменьшить размер памяти для хранения одного изображения в среднем в 6 раз по сравнению с независимым кодированием каждого пикселя. Каждое изображение дополняется служебной информацией, которая занимает 54 Кбайт. Для хранения 32 изображений выделено 6 Мбайт памяти. Какое максимальное количество цветов можно использовать в палитре каждого изображения?
Тип:Поиск количества цветов в палитре. Дополнительные сведения.
Источник: Сборник задач К.Ю. Полякова
Растровые изображения в памяти и в файлах
Как правило, размер растрового изображения в памяти определяется его размерами и цветовым разрешением. Например, чтобы вычислить количество байтов для 24-битного изображения размером 500 х 500 пикселей, нужно умножить 500 * 500 * 3. (Умножить на 3, поскольку в 24 битах 3 байта.) Для 8-битного изображения, это будет 500*500 плюс размер его палитры, который составляет около 1К. Исключение составляют 1-битные файлы, которые можно загрузить в сжатом формате с помощью набора инструментов LEADTOOLS Document/Medical.
Для любого цветного изображения, независимо от того, находятся ли значения цвета в палитре или в данных изображения, цвет каждого пикселя в растровом изображении состоит из красных, зеленых и синих значений. Они всегда используют модель цветового пространства RGB, , что означает, что значения красного, зеленого и синего объединяются для представления цвета.
Размер одного и того же цветного изображения при сохранении в файле часто намного меньше, а модель цветового пространства не всегда является RGB. Например, файлы JPEG и LEAD CMP используют модель цветового пространства YUV, где Y — значение яркости, а значения U и V — значения цветности. В этой модели цветового пространства информация о яркости хранится в значении яркости, а информация о цвете хранится в значениях цветности. JPEG и LEAD CMP обеспечивают сжатие данных с помощью методов выборки, которые могут повлиять на точность значений YUV. Этот тип сжатия иногда называют сжатием с потерями, потому что вы можете манипулировать параметрами сжатия, чтобы выбирать между большим сжатием или большей точностью. (YCbCr, используемый в изображениях TIFF, представляет собой ту же модель цветового пространства, что и YUV.)
Другой моделью цветового пространства, используемой в файлах изображений, является CMYK (разработанная для цветной печати с использованием голубого, пурпурного, желтого и черного цветов). Другие методы сжатия включают RLE (кодирование длин серий) и LZW (Lempel-Ziv и Welch). Оба этих метода сохраняют точность данных изображения и обеспечивают сжатие исключительно за счет выявления повторений данных. Некоторые форматы файлов изображений в градациях серого и 1-бит также используют методы сжатия RLE и LZW.
Существует также семейство цветовых кодировок BGR эталонной выходной метрики (ROMM), которые представляют собой кодировку цветов BGR с расширенной цветовой гаммой, относящейся к широкому первичному выходу. Эти кодировки используются цифровыми системами обработки неподвижных изображений для обработки, хранения, передачи, отображения и печати цифровых изображений. В отличие от цветовой кодировки sRGB диапазон цветов не ограничивается теми цветами, которые могут отображаться на ЭЛТ-мониторе, и, в отличие от e-sRGB, эти кодировки не используют отрицательные координаты колориметрии RGB. Порядок цветов ROMM может использоваться только с 24- или 48-битными растровыми изображениями и поддерживается форматами файлов CMP/JPEG/Exif JPEG/JTIF/TIFF CMP.
Форматы файлов изображений используются не только для хранения в файловой системе компьютера, но также для хранения баз данных и для передачи изображений. Кроме того, некоторые приложения хранят часто используемые изображения в памяти в сжатом формате файла. Таким образом, они могут использовать преимущества скорости памяти при загрузке растровых изображений из этих файлов.
Связанные темы:
- Сжатие с использованием форматов LEAD и JPEG
- Форматы файлов — сжатые JPEG и LEAD (JPG, J2K, JPX, JP2, CMP, CMW)
- Комментарии к файлу JPEG 2000
- Комментарии к файлам JPEG и LEAD
- Программирование с помощью функций JPEG 2000
- Сверхсжатые изображения
- Ускорение 1-битных документов
Измерение и оптимизация размера растрового изображения с помощью Glide или Picasso | by Paulina Sadowska
Этот пост был создан вместе с видео, которое я разместила на своем канале YouTube 🎥
Когда мы думаем об ошибках OutOfMemory, на ум приходят утечки памяти. Но есть возможность получить ошибки OutOfMemory, даже если в вашем приложении нет утечек — просто потому, что ваше приложение использует слишком много памяти.
Если вы работаете над приложением, которое загружает много изображений, растровые изображения могут значительно увеличить потребление памяти .
Вот почему в этой статье я хочу показать вам, как узнать, насколько велики растровые изображения, загруженные в память, и как уменьшить их. Все это с использованием двух самых популярных библиотек загрузки изображений: Glide и Picasso.
Распространенное заблуждение, с которым я иногда сталкиваюсь, заключается в том, что размер растрового изображения в памяти одинаков или, по крайней мере, всегда связан с размером файла, загружаемого с сервера. Таким образом, чтобы оптимизировать использование памяти, все, что нам нужно сделать, это уменьшить размер изображений, получаемых с сервера.
Ну, это не обязательно должно быть правдой.
Чтобы узнать, сколько памяти занимают растровые изображения в вашем приложении, проще всего просто измерить это, и мы можем легко сделать это в Profiler.
В Profiler мы можем сделать снимок памяти, используемой в любой момент времени — дамп кучи :
После создания дампа кучи мы можем легко узнать, сколько растровых изображений загружено и насколько они велики.
⭐ Быстрый совет ⭐
Если вы хотите проверить растровые изображения в памяти, хорошо сделать это на устройстве или эмуляторе с Android 7.1 или ниже. Android 7.1 — последняя версия, которая позволяет нам видеть предварительный просмотр растрового изображения в Profiler , что чрезвычайно удобно при работе с растровыми изображениями.
В версии 8.0 было реализовано изменение в классе Bitmap, которое сделало невозможным предварительный просмотр растрового изображения в Profiler. Но на старых версиях Android мы все еще можем это увидеть.
Размер растрового изображения в памяти зависит от двух факторов: качества и размеров растрового изображения.
И эти размеры растрового изображения определяются по-разному в зависимости от того, какую библиотеку загрузки изображений вы используете.
Как именно Glide и Picasso определяют размеры растрового изображения?
В Picasso размеры растрового изображения совпадают с размерами загруженного изображения.
Таким образом, если ваш вид имеет размер 200 пикселей квадратов и вы загружаете в него изображение размером 1000 пикселей квадратов, размер этого растрового изображения будет 3,8 МБ .
Таким образом, в этом случае определенно окупается загрузок изображений, которые имеют размеры, аналогичные просмотрам . Не только потому, что загрузка больших изображений с сервера занимает больше времени, но и потому, что если вы используете Picasso, получение огромных изображений увеличивает объем используемой памяти , что может привести к ошибкам OutOfMemory, особенно на недорогих устройствах с меньшим объемом доступной памяти.
Glide, с другой стороны, использует совершенно другой подход. Если вы используете Glide и загружаете изображение 1000px в представление 200px , размер растрового изображения будет всего около 0,15 МБ!
Конечно, вы все равно не должны загружать такое большое изображение в такой маленький вид, потому что время загрузки будет очень долгим. Но если вам абсолютно необходимо сделать это в Glide, по крайней мере, вы получите лучший объем памяти, поскольку растровое изображение займет гораздо меньше места, чем если бы вы использовали Picasso.
Библиотека Picasso содержит несколько функций, позволяющих изменять размер загружаемого растрового изображения.
Я думаю, что наиболее полезным из них является fit()
. Когда вы используете эту функцию при загрузке изображений, Picasso сначала измеряет вид, а затем загружает в него растровое изображение, которое было создано с точно такими же размерами , что и представление , с учетом соотношения сторон растрового изображения. Итак, Picasso с fit()
ведет себя так же, как Glide.
Как оказалось, есть один сценарий, в котором этот параметр может создать растровое изображение большего размера, чем созданное в Picasso по умолчанию.
Предположим, что для оптимизации использования памяти на некоторых недорогих устройствах и для ускорения загрузки изображений мы решили загружать изображения, которые на 20% меньше размера представления. Итак, мы решили загрузить изображение размером 160 пикселей и растянуть его до вида размера 200 пикселей .
Это может быть удивительно, но в этом случае размер растрового изображения в Glide будет таким же, как если бы мы загрузили изображение размером 200 пикселей. Почему? , потому что в Glide размер растрового изображения всегда определяется размером представления.
Как это исправить?
Мы можем очень легко это исправить — просто воспользовавшись методом centerInside()
.
Этот метод всегда казался мне чем-то полезным, только чтобы определить, как расположить и растянуть изображение внутри представления, поэтому он не кажется таким уж интересным для оптимизации использования памяти. Но, как оказалось, эта функция также приводит к тому, что размер растрового изображения также никогда не превысит размеры исходного изображения.
Итак, загрузка 160px Изображение в 200px View с CenterInside ()
создает только 0,1 МБ , для 2005px Image It It 0,15 МБ , а для 1000px — также 0,15 МБ .
Все выглядит так же , как когда мы использовали параметры по умолчанию, и для изображений, которые меньше, чем вид, мы получаем меньшее использование памяти .
Ладно, хватит о размерах растрового изображения. А как насчет другого фактора, влияющего на размер растрового изображения: качества?
И Glide, и Picasso по умолчанию используют одинаковое качество изображения: AGRB_8888. В этом качестве требуется 4 байта для кодирования одного пикселя . Вот почему в моих предыдущих расчетах я всегда умножал размеры растрового изображения на 4 байта.
Но если мы хотим, мы можем изменить конфигурацию как в Glide, так и в Picasso и уменьшить это качество, чтобы получить меньшие растровые изображения, используя качество RGB_565 .
В этом качестве для кодирования каждого пикселя нам нужно всего 2 байта . Это означает, что если мы используем это качество , все наши растровые изображения станут на 50% меньше, чем если бы мы использовали качество ARGB по умолчанию.
Конечно, если мы используем качество RGB_565, некоторые изображения могут выглядеть немного хуже. Это может быть видно на градиентах. Но, как вы можете видеть в сравнении ниже, это не так уж и плохо. На большинстве изображений это не так заметно, особенно на бюджетных устройствах.
Но, что действительно важно, RGB_565 не поддерживает прозрачность , поэтому вам следует использовать качество ARGB, если вам нужно загружать прозрачные или частично прозрачные изображения.
Стратегия избавления от OOM на младших устройствах 📝
Если вы хотите быстро избавиться от некоторых ошибок OutOfMemory, я думаю, что хорошей стратегией может быть использование более низкого качества растрового изображения для младших устройств .
При запуске можно определить объем оперативной памяти устройства и используемую версию Android, а затем определить, какое качество изображения использовать. Конечно, вы должны использовать качество RGB_565 только для непрозрачных изображений.
Leave A Comment