Как добиться качественного уменьшения масштаба диаграмм (как в Firefox)?

1090
Andreas Rejbrand

Мне часто нужно уменьшать размер растровых изображений, состоящих из толстых прямых линий и других толстых кривых, например:

like this one,

Используя GIMP 2.8.16 и различные варианты его интерполяции для изменения размера изображения до 600 × 600 кв. Пикселей, я получаю следующие изображения:

Нет интерполяции

No interpolation

линейный

Linear

кубический

Cubic

Синк (Lanczos3)

Sinc

Теперь сравните это с результатом, достигнутым браузером Firefox:

Firefox 47.0

Firefox

Посмотрите, например, на самую верхнюю серую линию. Если вы сравните 1 каждое из изображений, созданных в GIMP, с изображением, полученным с помощью Firefox, вы увидите, что в каждом сравнении линия на изображении, сгенерированном Firefox, выглядит намного лучше.

Теперь, как вы можете себе представить, использование веб-браузера для уменьшения масштаба изображений не очень удобно, поэтому мне интересно, есть ли какой-либо графический редактор, способный уменьшать изображения, такие же, как Mozilla Firefox. Я бы предпочел простой способ изменения размера партии .

1 Убедитесь, что ваш браузер не применяет собственную интерполяцию при просмотре изображений. Возможно, вы захотите открыть новое окно браузера и открыть в нем две вкладки: одна с версией GIMP, а другая с версией Firefox. Затем используйте Ctrl + Tab для быстрого переключения вкладки. Это сделает различия очевидными для большинства наблюдателей.

4
Вы, вероятно, получите больше отзывов на [computergraphics.stackexchange] (http://computergraphics.stackexchange.com/) Rob 7 лет назад 1
Жаль, что GIMP до сих пор не имеет гамма-коррекции в 2016 году user23013 7 лет назад 0
Вы уже пробовали это в текущей сборке GIMP? Michael Schumacher 7 лет назад 0
@MichaelSchumacher: Нет, я пробовал только в последней стабильной версии. Andreas Rejbrand 7 лет назад 0

3 ответа на вопрос

3
Andreas Rejbrand

Я обнаружил, что ImageMagick 7 дает такой же хороший результат, как и результат, полученный Mozilla Firefox:

enter image description here

Чтобы изменить размер изображения с помощью ImageMagick, используйте команду:

magick image.png -resize 600 small.png 

Это изменит размер image.pngдо ширины 600 пикселей, сохраняя соотношение сторон и сохраняя вывод как small.png.

После некоторых проб и ошибок я даже нашел способ выполнить пакетное изменение размера с помощью cmd.exe в Windows 7. Команда:

for %f IN (*.png) DO magick %f -resize 600 scaled/%f 

изменяет размер всех изображений PNG в текущем каталоге до ширины 600 пикселей, сохраняя соотношение сторон и помещая выходные изображения в scaledподкаталог.

Можете ли вы [отредактировать] свой ответ, добавив изображение, созданное с помощью ImageMagic под окнами? Так что можно будет сделать сравнение. Благодарю. Hastur 7 лет назад 0
@Hastur: Извините, не могу поверить, что я забыл показать изображение. Обновлюсь через сек. Andreas Rejbrand 7 лет назад 0
Благодарю. Так как вы недавно _обнаружили_ Imagemagick, я хотел бы пригласить вас на _play_ с `identifier` (` Identify -verbose yourimage.png`). Это может дать некоторые подсказки. Исходное изображение было только с 4 цветами; другие нет. Firefox добавляет альфа-канал, которого нет в IM ... С этими подсказками вы можете начать играть с параметрами командной строки (которые не являются коммутативными!) В попытке получить еще лучший результат (но вы должны определить свой _лучше_). Без проблем с вычислительным временем вы можете найти интересные [povray] (http://www.povray.org) (для вашей программы). Hastur 7 лет назад 0
Примечание: [GraphicsMagick] (http://www.graphicsmagick.org/) является форком ImageMagic, который имеет превосходную производительность и качество. harrymc 7 лет назад 1
@harrymc: Интересно. Я запомню это, если мне надоест ImageMagick. Andreas Rejbrand 7 лет назад 0
@harrymc это все еще действует? Причиной, по которой был создан GM, было отсутствие стабильности IM API и CLI, IIRC - но я сам не смог привести ни одного примера для этого. Знаете ли вы текущее сравнение этих проектов? Michael Schumacher 7 лет назад 0
Конечно, это актуально и с тех пор сильно развилось. Последний выпуск был 30 мая 2016 года. harrymc 7 лет назад 0
Я не сомневаюсь, что существует текущая версия GraphicsMagick, и что на начальном этапе она была лучше, чем ImageMagick - если не для качества, то хотя бы для «Будет ли опция, которую я использую, по-прежнему присутствовать в следующем микро-релизе? ». Мой вопрос заключается в том, верно ли это в наше время? Michael Schumacher 7 лет назад 0
0
Pat

Я изо всех сил пытался найти хороший downscale (r), который я в основном использовал для масштабирования скриншотов приложений для веб-документации. мои результаты:

  1. Фотошоп :Bad

  2. MS Word : Goodвставьте изображение в документ, измените его размер, сделайте снимок экрана, сохраните его в формате png с помощью программы Paint.exe. Результаты хорошие, но MS не позволяет вам контролировать размер в пикселях (только дюймы или%).

  3. ReSize.exe (из пакета RoboHelp): Good Но он не обрабатывает напрямую png; Я использую этот метод, теперь преобразовывающий png-> bmp-resize-bmp-> png. Это мой текущий выбор.

Ваш вариант №2 похож на то, как я делал вещи (но с помощью Firefox) до того, как «открыл» ImageMagick! Я открыл исходный PNG-файл в Firefox, щелкнул правой кнопкой мыши по изображению ( элементу), выбрал «Проверить элемент» и либо изменил атрибуты `width` и` height`, либо добавил `width: 600px` и` height: 600px` к стиль локального элемента с использованием правой панели. Затем я использовал панель для удаления нецветного фона страницы, сделал снимок экрана (с помощью инструмента OneNote) изображения и несколько отступов вокруг него, открыл снимок экрана в GIMP, автоматически обрезал его и сохранил. Andreas Rejbrand 7 лет назад 0
Я должен был сказать, что я также тестировал ImageMagic, но в моем случае (уменьшая скриншоты приложений Windows) он не работал хорошо при уменьшении отображаемого текста. Я много тестировал; для меня вариант 3 - тот, который дает мне лучшие результаты. Pat 7 лет назад 0
Я могу себе представить, что понятие «лучший» на самом деле сильно зависит от типа графики. Что касается текста, возможно, также имеет значение, является ли он сглаженным или нет. Кроме того, на обычном скриншоте большая часть текста, вероятно, состоит из линий шириной в один пиксель, тогда как мои источники имеют очень толстые линии. (Не понизить.) Andreas Rejbrand 7 лет назад 0
(Я знаю, что вы не отрицали) Я просто хотел внести свой вклад в эту дискуссию с моим опытом. Я согласен с моей концепцией «лучших» результатов, которая основана на скриншотах приложения, которые в основном состоят из геометрических квадратных фигур и текста. В вашем случае вы не имеете дело с текстом. Pat 7 лет назад 0
Я думаю, что я продолжу использовать ImageMagick, и лучший результат, который я видел на этой странице, получен из Photoshop. Тем не менее, спасибо и +1 за усилия! Andreas Rejbrand 7 лет назад 0
0
Uğur Gümüşhan

Вы можете использовать опцию Photoshop "Bicubic Sharper"

Или вы можете масштабировать, используя бикубическую интерполяцию, ТОГДА «слегка» обострить изображение, используя GIMP или любой другой инструмент, который вы хотите

https://docs.gimp.org/en/plug-in-sharpen.html

https://docs.gimp.org/en/gimp-image-scale.html

enter image description here

Это бикубический острее фотошоп enter image description here

Это фотошоп бикубического гладкого enter image description here

Это то, что происходит, когда вы применяете «резкость краев» в Photoshop, а затем используете обычную бикубическую интерполяцию. (Я рекомендую этот). Кроме того, я увеличил масштаб и сравнил это с выводом Firefox, они очень похожи. enter image description here

Photoshop не подходит для этой задачи, независимо от того, какой метод повторной выборки вы решите использовать, а также постобработки, которую вы могли бы использовать, чтобы «улучшить» эту вещь. У меня есть Adobe "Master Collection CS6", "eLearning SuiteCS6.1" и "Technical Suite 4". У них нет ничего хорошего, чтобы уменьшить изображение, подобное представленному здесь (ну, ReSize.exe - это старое приложение RoboHelp, принадлежащее Adobe но он напрямую не обрабатывает PNG). Pat 7 лет назад 0
@ Тебе не нравится последняя фотография, которую я представил? Uğur Gümüşhan 7 лет назад 0
@ UğurGümüşhan: Спасибо за ваше информативное описание опций, предлагаемых Photoshop. Первый результат, который мне не нравится, так как линии четко «пикселированы». Второй результат, однако, почти неотличим от результата Firefox / ImageMagick; разница видна посередине и справа, и я не уверен, но, возможно, Photoshop там работает еще лучше. Третий результат также выглядит очень хорошо, и линии явно ярче (я не против). Andreas Rejbrand 7 лет назад 0
(Но почему ссылки GIMP наверху?) Andreas Rejbrand 7 лет назад 0
@AndreasRejbrand: в будущем люди, которые найдут этот пост после поиска чего-то похожего, могут не иметь доступа к фотошопу. Кроме того, люди могут захотеть получить аналогичные результаты, используя инструменты командной строки для автоматизации, поэтому я пытаюсь рассказать людям о математических методах, а не о том, что нажимать. Uğur Gümüşhan 7 лет назад 0
В этом случае Photoshop делает то, что выглядит как хорошая работа, но после использования в течение многих лет я знаю, что PS не мой инструмент для изменения размера изображений. Pat 7 лет назад 0
@ UğurGümüşhan: Извините за вопрос в скобках. Я не видел текст «используя gimp или любой другой инструмент, который вам нужен», когда писал его (я был слишком занят, сравнивая растровые изображения, исследуя тонкие различия между ними). Я полагаю, что второй из ваших подходов дает лучший результат из всех на этой странице, так что вы, безусловно, заслуживаете +1 и вознаграждение в 250 за это! Но я не уверен, стоит ли мне выбирать этот ответ или ImageMagick в качестве «принятого ответа», потому что ImageMagick создает * почти * одинаково красивое изображение, очень эффективно (даже для пакетного использования) и немного более свободно, чем Photoshop. Andreas Rejbrand 7 лет назад 0
@AndreasRejbrand Я действительно пытался объяснить алгоритмы, которые мне безразличны к приложениям, причина, по которой я опубликовал примеры фотошопа, потому что у меня установлен фотошоп. Если вы хотите опробовать алгоритмы, отличные от бикубических или билинейных, вы можете установить imagemagick, но вам придется иметь дело с командной строкой и длинными документами. Мне нравятся все эти инструменты. Uğur Gümüşhan 7 лет назад 0