Вы можете сделать это с помощью экспериментальной версии утилиты jpegtran
с опцией «drop». Получите его из http://jpegclub.org/jpegtran/. Вот пример (используя образец изображения из http://www.rawsamples.ch/). Я загрузил здесь все образцы в виде файлов PNG, чтобы избежать дополнительной рекомпрессии из службы хостинга.
Во-первых, изображение в формате JPEG высокого качества:
![High-quality JPG](https://i.stack.imgur.com/O6b9D.jpg)
Это 1715K - больше мегабайта.
Теперь упало до ужасного качества (10% в Gimp, с подвыборкой 4: 2: 0):
![Low-quality JPEG](https://i.stack.imgur.com/RMCol.jpg)
Уууу, до 52K . JPEG потрясающий.
Итак, затем я попробовал предложение от Стивена; Я взял некачественную версию и положил ее поверх несжатого оригинала, а затем стер ту часть, которую хочу выглядеть лучше всего - трубочное полотно в верхнем ряду. Это дает:
![Low-Q with original blended in, then saved as high q](https://i.stack.imgur.com/l6aYU.jpg)
Но, к сожалению, теперь это обратно до 667K , что побеждает цель. Даже когда я использую 4: 2: 0, это все равно 378K - и это более справедливое сравнение, как вы увидите чуть позже.
Итак, я попробовал подход jpegtran -drop
- я вырезал наложение той части, которую я хочу высокого качества:
![overlay](https://i.stack.imgur.com/dXOCe.jpg)
что составляет 38K , кстати, и используется
jpegtran -drop + 592 + 62 overlay.jpg -outfile drop.jpg lowq.jpg
, чтобы вставить его. Я обнаружил, что подвыборка должна соответствовать, поэтому я не мог использовать предельно высокое качество, но это, вероятно, хорошо.
![dropped in](https://i.stack.imgur.com/uiZUD.jpg)
для окончательного 221K изображения. Это значительно лучший результат size , чем сохранение в высоком качестве, даже с субдискретизацией. Тем не менее, это, возможно, худший визуальный результат, так как вы не можете смешивать - он должен быть прямым, и все становится размером 8 × 8. Вы можете обойти это, осторожно выполняя отдельные фрагменты с промежуточными уровнями сжатия, поэтому переход не очевиден, но это кажется ... утомительным.
Итак, если вам нужен один файл, вы можете сделать это. И, если проблема квадратной обрезки и выравнивания блоков работает с вашим изображением, это может быть даже лучшим способом.
Однако, так как вы представляете на веб-странице, я бы выбрал другой подход: используйте CSS, поместите вашу высококачественную область в файл PNG с прозрачностью и поместите это прямо поверх низкоуровневой. качественный JPEG. А в вашем случае, когда область высокого качества мала (0,5% изображения!), Она, вероятно, лучшая.
Конечно, это работает только в том случае, если ваша область высокого качества достаточно мала, чтобы выиграть сжатие. Если он достаточно большой, вы можете попробовать что-то из перечисленного.