2012-03-21 3 views
14

Я собираюсь позволить пользователям загружать изображения 300x300, сжатые с помощью JPEG. Есть ли способ определить, какой максимальный размер файла такого изображения будет?Максимальный размер изображения JPEG с известными размерами

Я могу себе представить, что это можно попробовать, сжав случайный шум со 100 качеством, но есть ли теоретический максимум?

Скажите, что изображение представляет собой совершенно несжатый случайный шум, может ли он быть 3 байта на пиксель (24-битный цвет) и запас для метаданных? Или может ли такое изображение получиться больше, чем оригинал при сжатии?

+0

Не эксперт в этом, но почему бы просто не использовать размер несжатого растрового изображения (плюс буфер для метаданных?) Как самый большой, который вы примете? – Collin

+0

@CollinHockey Я подумал об этом, но я подумал, что это может стать больше («Или может такое изображение ...»). Однако, если это произойдет, вероятно, это не так много, поэтому на практике это будет хороший максимум для поддержания. –

ответ

12

From wikipedia:

Для получения высоких качественных изображений (Q = 100), около 8,25 бит на цвет пикселя требуется http://en.wikipedia.org/wiki/JPEG#Sample_photographs

Таким образом, для Q=100 на 300x300 изображений, которые были бы результат (300 * 300) px * 8.25 bits/px = 742,500 bits = ~ 93 kB

Есть также без потерь JPEG, которые практически не используются (last sentence, second paragraph). Но у них будет RGB типичный 24 bits/pixel.

3

Не существует ограничений на размер метаданных jpeg, что означает, что размер файла jpeg не ограничен. См. Этот ответ. Я объяснил причину, а также пример реальной ситуации, когда метаданные могут стать большими: What is the maximum size of JPEG metadata?

Так что, если предполагаемый максимальный практический/реалистичный размер соответствует вашей цели, этот пример в ваши расчеты. Во многих контекстах было бы хорошо просто отклонить вещи за пределами этого максимума как вне области предполагаемого использования вашей программы.

Но если вы абсолютно должны полагаться на теоретические, то, к сожалению, это большой жирный

Примечание: У меня нет огромного количества личного опыта со спецификацией Jpeg, так что я иду от того, что люди говорили о допустимости повторяющихся полей, а также о нескольких полях комментариев. Пожалуйста, поправьте меня, если вы найдете доказательства обратного.

Смежные вопросы