2010-05-06 4 views
2

У меня есть изображения JPEG, которые мне нужны, чтобы уменьшить примерно до 80% от исходного размера. Размер оригинального изображения составляет около 700 пикселей × 1000 пикселей. Изображения содержат некоторый текст, созданный компьютером, и, возможно, некоторые графики (похожие на то, что вы найдете в корпоративных текстовых документах).Как масштабировать JPEG-изображение вниз, чтобы текст был максимально понятным?

Как увеличить изображение, чтобы текст был максимально разборчивым? В настоящее время мы масштабируем imaeg с использованием бикубической интерполяции, но это делает текст размытым и туманным.

+5

Не связанный с алгоритмом масштабирования: мне интересно, почему вы используете JPEG вообще для текста. Также помните, что независимо от того, как вы масштабируете изображение, текст уже имеет артефакты вокруг него и будет получать новые после рекомпрессии - это, безусловно, не поможет разборчивости. – Joey

+1

У нас уже есть гигантская куча этих JPEG, и мы не хотим их регенерировать. –

+0

Не оспаривать Joey здесь (конечно, JPEG не самый лучший формат изображения для текста), но вопрос о статусе-кво не помогает ... Кроме того, если указанное изображение также содержит изображения (скажем, из журнала, скажем), JPEG может действительно быть лучшим форматом одного изображения (учитывая размер файла в качестве ограничения). (Лучше двухкомпонентный подход состоит в том, чтобы наложить прозрачный png с текстом поверх изображений в виде пробега, но он принимает все виды предварительной и последующей обработки ...) –

ответ

2

два варианта:

  1. Используйте другой алгоритм передискретизации. Lanczos дает вам гораздо менее грубый результат.

  2. Вы используете библиотеку JPEG, которая позволяет сэкономить 8x8 блоков до 6x6 пикселей.

+0

Я посмотрю на Lanczos. Вы хоть представляете, насколько интенсивность работы сравнивается с бикубикой? –

+0

Да, вам нужно до 25 образцов вместо 4, так что это дороже, но поскольку у вас есть фиксированное изменение размера, вы можете заранее просчитать вес образцов для всех разных подпозиций, и он должен быть таким же интенсивным, как и JPEG декодирования. –

2

Если вы не настроили ровно 80%, вы можете попробовать получить и построить djpeg от http://www.ijg.org/, так как он может распаковать ваш jpeg на 6/8th (75%) или 7/8th (87,5%), а качество текста будет все еще довольно хорошо:

Original

7/8

3/4

(SO решил масштабировать изображения при показе их рядный)

Там может быть алгоритм масштабирования, который работает аналогичным образом, но это легко разрешить.

1

Всегда есть недостаток в сокращении, но это опять же зависит от ваших компромиссов.

  1. Генерация размытия и создания артефактов нормальна для изображений в формате JPEG, поэтому рекомендуется, чтобы вы генерировали изображения в правильном размере в первый раз.
  2. Lanczos - прекрасное решение, но у вас есть свои компромиссы
  3. Если это только текст, и вас беспокоит его, вы можете попробовать фильтр дилатации по перевыбранному изображению. Это исправит некоторую размытость, но может также повлиять на графику. Если вы можете жить с ним, это хорошо. Альтернативно, если вы можете определить области текста, вы можете применить расширение только по этим областям.
Смежные вопросы