1

Я программист Windows, который должен конвертировать определенный SVG в EMF, чтобы использовать его для программирования.

Мои навыки графического дизайна находятся на начальном уровне, но мне удалось успешно конвертировать файл SVG в EMF с помощью Inkscape. Однако результат не выглядит как исходный, он, так сказать, менее "точен". Если я экспортирую SVG как PNG, результат будет таким же, как и у исходного файла. К сожалению, мне нужен векторный формат, который распознает Windows, и это только EMF (я использую чистый WinAPI и C++, поэтому это ограничение ... ).

Чтобы точно понять, что я имею в виду, ссылка на оригинальный SVG, а также EMF и PNG, которые я сделал, находится здесь. Просто нажмите на Download:test.rar над 5 желтыми звездами (см. Рисунок ниже).

Похоже, проблема заключается в размерах файла EMF (он должен быть 90 x 120), так как изображение становится кристально чистым, когда я изменяю размер приложения до больших размеров.

Я прошу вашей помощи, чтобы получить то же графическое качество файла EMF, что и оригинальный SVG.

Чтобы помочь вам в решении моей проблемы, вот небольшое приложение, которое отображает ЭДС в окне. Просто сохраните EMF в том же месте, где находится приложение, и назовите EMF как test.emf .

Спасибо за ваше время и усилия. С наилучшими пожеланиями.

2 ответа2

2

Я сделаю сравнение с вашей тестовой графикой:

  1. Это файл PNG, который вы предоставляете, так что это, вероятно, желаемый результат:

  2. Выход вашего кода, ок. в том же размере:

  3. Предоставляемый вами файл EMF отображается в IrfanView (снова примерно того же размера)

  4. То же, что и 3., но с View -> Display Options -> Use Resample :

Заключение

Так как 4. выглядит как 1. (то есть желаемый результат), я пришел к выводу, что преобразование в формат EMF совершенно нормально, но ваш код масштабирует графику с помощью простого, возможно, пиксельного алгоритма. Так что ИМХО вам нужно реализовать, например, процедуру билинейной интерполяции .

2

При просмотре с помощью Photoshop у EMF нет добавленной рамки, так что, похоже, это проблема со зрителем.

Я не могу загрузить вашу программу просмотра по какой-то непонятной причине. Я использовал Free WMF Viewer для просмотра вашей картинки EMF,

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

Я также просмотрел вашу EMF, используя старый просмотрщик wmf/emf, который я когда-то написал, который также не показывает черную рамку. Я отмечаю, что в моем собственном средстве просмотра я использовал ограничивающий прямоугольник только для определения соотношения сторон изображения (высота и ширина), чтобы правильно отображать его, то есть не сжимать и не растягивать.

Мой вывод заключается в том, что оба зрителя отображают ограничивающий прямоугольник в виде рамки. Это неверно, поскольку его целью является предоставление информации о рекомендованном прямоугольнике просмотра изображения, а не его отображение. Таким образом, ваш процесс генерации ЭДС кажется правильным.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .