JPEG: размеры и сжатие - PullRequest
       9

JPEG: размеры и сжатие

3 голосов
/ 14 ноября 2010

Довольно простой, но конкретный вопрос здесь:

Я не совсем знаком со стандартом JPEG для сжатия изображений.Создает ли оно лучшее (то есть файл меньшего размера при аналогичном качестве) изображение, когда размер X (ширина) очень большой, а размер Y (высота) очень маленький, или наоборот, или когда эти два значения почти равны?

Практическое использование, которое я имею для этого, - спрайты CSS.Если бы веб-сайт состоял из сотен спрайтов CSS, было бы идеально минимизировать размер файла спрайта, чтобы помочь пользователям в более медленном интернете, а также уменьшить нагрузку на сервер.Если стандарт JPEG действительно хорошо работает на одной горизонтальной линии, но перемещение по вертикали требует гораздо большей сложности, было бы разумно, чтобы изображение 100 CSS-спрайтов 16x16 было 1600x16.

С другой стороны, еслиСтандарт JPEG имеет много сложностей, работая горизонтально, но легко перемещается из строки в строку, вы можете сделать файл меньшего размера или более высокого качества, сделав изображение размером 16x1600.

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

Ответы [ 2 ]

4 голосов
/ 14 ноября 2010

Похоже, что степень сжатия JPEG не зависит от размеров изображения. Тем не менее, похоже, что ваши измерения должны быть кратны 8, но во всех ваших примерах вы имели кратные 16, поэтому с вами все должно быть в порядке.

http://en.wikipedia.org/wiki/JPEG#JPEG_codec_example

Если я правильно помню, PNG (без потерь) работает намного лучше, когда один и тот же цвет появляется на горизонтальном участке, а не на вертикальном участке. Почему вы делаете свои спрайты JPEG? Если они имеют ограниченный набор цветов (что вероятно, если у вас есть спрайты 16x16, анимированные или нет), PNG может на самом деле дать лучшие размеры файлов с идеальным качеством изображения.

4 голосов
/ 14 ноября 2010

Механизм блокировки MPEG / JPEG (очень незначительно) предпочтет размер изображения, который является точным кратным размеру блока сжатия в каждом измерении.Однако, кроме этого, формату будет безразлично, будут ли блоки вертикальными или горизонтальными.

Таким образом, прямой ответ на ваш вопрос будет «квадрат хорош как и все», пока ваши спрайты делятсялегко в блок сжатия JPEG (просто убедитесь, что они имеют ширину 8, 16, 24 или 32 пикселя, и все будет в порядке).

Однако я бы пошел немного дальше и сказал бы, что для «большинства»несмотря на это, у вас будет меньший размер изображения и более четкое разрешение, если исходное мастер-изображение будет GIF вместо JPG, тем более, если вы можете использовать уменьшенную цветовую палитру.Подумайте, зачем вам вообще нужен JPG для "сотен спрайтов".

...