Какой метод / алгоритм обеспечивает наилучшее качество вывода при масштабировании изображений с низким разрешением до изображений с высоким разрешением? - PullRequest
2 голосов
/ 24 августа 2011

Я собираюсь попытаться быть как можно более конкретным.

Я начинаю бизнес приглашений, который позволит людям настраивать свои приглашения в Интернете, а затем отправлять их на печать.Я пытаюсь найти лучший способ сделать предварительное изображение, которое они макетируют, и вывести его таким образом, чтобы его высокое разрешение было достаточно для печати.мои проекты - не векторы, а растровые изображения с разрешением 300 точек на дюйм.

Есть ли у кого-нибудь идеи о том, как я могу взять эти изображения с разрешением 300 точек на дюйм?чтобы я мог их распечатать?

Я пытался сохранить их в формате PNG, но проблема в том, что они сохраняются для Интернета с разрешением 72 т / д.

Ответы [ 2 ]

5 голосов
/ 22 августа 2012

Если вам нужно увеличить изображение с более низкого разрешения, это легко сделать с помощью команды ImageMagick convert. Это очень просто:

convert  input.png  -scale 400%  4x-input.png

Однако, есть несколько очень продвинутых алгоритмов, которые обеспечили бы намного лучшее качество вывода, если бы вы знали, как заставить их действовать из командной строки.

Рассмотрим следующее входное изображение (исходный размер файла 7 кБайт, размеры 108x135 пикселей):

Original PNG, 'ophthalmologist test chart'

Теперь масштабируйте его до 16-кратного числа пикселей (или в 4 раза для каждого измерения) ...

  1. ... сначала с помощью приведенной выше команды «прямое масштабирование» ,

  2. ... затем с помощью команды «лучшее качество масштабирования» .

Сравните эти два результата:

Straightforward 400% scaling result Better quality 400% scaling result

Обратите внимание также на разницу в размерах файлов:

  • оба полученных изображения имеют размер 432x540 пикселей,
  • но «лучшее качество» использует только 72 кБайт дискового пространства,
  • , тогда как в «прямом» масштабе используется больше: 87,5 кБайт!

Вы хотите увидеть результат для фотографии? Вот и мы ...

Входное фото:

Old man's photo

Результаты «прямого масштабирования» ImageMagick (первое) и «масштабирование лучшего качества» (второе):

photo scaling 400% straightforward enter image description here

(Кредиты для двух входных тестовых файлов принадлежат Научный институт Вейцмана - Факультет математики и компьютерных наук в Израиле , которые разработали собственный алгоритм для изображения 'super масштабирование разрешения ». Вывод, показанный здесь, однако, ImageMagick и не имеет ничего общего с алгоритмами Института Вейцмана ...)

«Команда»

Наконец, вот команда, которая дает вам превосходное качество. Я запустил его на ImageMagick v. '6.7.6-9 2012-05-12 Q16' , чтобы получить результат, который вы видите на изображениях выше:

convert                       \
   input.png                  \
  -colorspace RGB             \
  +sigmoidal-contrast 11.6933 \
  -define filter:filter=Sinc  \
  -define filter:window=Jinc  \
  -define filter:lobes=3      \
  -resize 400%                \
  -sigmoidal-contrast 11.6933 \
  -colorspace sRGB            \
   better-quality-enlargement.png

Отказ от ответственности: эта команда ImageMagick ни в коем случае не является моим собственным достижением. Это было результатом исследования Николаса Робиду , который придумал его.

Подробнее о недавних экспериментах Николаса с ImageMagick, его объяснениях и соображениях, а также о нескольких альтернативных его командах вы можете найти здесь:

3 голосов
/ 24 августа 2011

Невозможно уменьшить изображение до превью-версии с низким разрешением, а затем уменьшить его до высокого разрешения и сохранить качество высокого разрешения.Вы потеряете тонну деталей в исходном изображении, если вы уменьшите его, а затем уменьшите его.

Я думаю, вам нужно переосмыслить поток вашего приложения здесь.Обычный способ сделать это - создать изображение для предварительного просмотра и позволить пользователю использовать его в веб-интерфейсе для создания своего приглашения, но когда они вносят в него изменения, вы сохраняете их как метаданные, описывающие изменения, а не как измененное изображение.,Затем, когда придет время для создания изображения с высоким разрешением, вы вернетесь к оригиналу, сделаете его копию и примените изменения метаданных к копии изображения с высоким разрешением, сохранив, таким образом, максимальное разрешение.

Если вы хотите убедиться, что вы показываете им правильный предварительный просмотр, прежде чем они благословят его на печать, вы можете сделать один из последних процессов утверждения шагом, на котором вы создадите изображение высокого разрешения в сочетании с выполненными ими правками метаданных.а затем вы берете это изображение с высоким разрешением и делаете его веб-версию в качестве окончательного предварительного просмотра.Вы будете использовать версию высокого разрешения, которую вы создали для печати. ​​

...