-1

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

4 * image dimensions

У меня есть около 800x800 изображений, и я вижу, что его размер составляет около ста КБ, что, я думаю, довольно мало. Но согласно приведенной выше формуле для его отображения требуется более 2 МБ!

В сообщении SO говорится, что поскольку растровое изображение использует цвета ARGB, каждому пикселю требуется 4 байта дискового пространства. Вот почему формула 4 * размеры изображения. Но я вижу, что для хранения изображения требуется всего 100 КБ!

Использует ли компьютер другой метод для сохранения изображения? 1 пиксель все еще нуждается в 4B, чтобы быть сохраненным? Как это происходит?

3 ответа3

3

IrfanView может помочь быстро просмотреть используемую память:
(см. расчет памяти)

WIDTH x HEIGHT x (BITS PER PIXEL) = память, необходимая для загрузки полного изображения

Ура!

2

Ваше изображение сжато (например, с помощью jpeg или png). Если вы сохраните изображение в несжатом формате (tiff без сжатия zip), вы также получите этот размер на диске.

2

Память, необходимая для хранения изображения, может быть меньше памяти, необходимой для его отображения. Например, если изображение представляет собой зеленый прямоугольник 80x80, его можно сохранить как эквивалент "зеленого прямоугольника 80 на 80". Но для его отображения вам понадобится 1600 зеленых точек, каждая из которых будет занимать определенное место.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .