ЭДС с принудительным сглаживанием - PullRequest
4 голосов
/ 14 сентября 2009

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

Есть ли какой-либо флаг или команда в формате EMF, чтобы указать, что мы хотим иметь сглаживание? Если да, то как сгенерировать эту команду, используя System.Drawing.Imaging.Metafile class?

Спасибо.

1 Ответ

11 голосов
/ 06 декабря 2010

EMF-файл представляет собой список команд GDI. Таким образом, он не будет сглаживаться, даже если в GDI + вы помещаете вызов SmoothingMode () перед рисованием. Вам нужно будет перечислить команды GDI, а затем перевести их в команды GDI +.

В Vista / Seven вы можете использовать функцию GDI + 1.1 с именем GdipConvertToEmfPlus / ConvertToEmfPlus. Если вы хотите, чтобы ваша программа работала с XP, вы должны написать собственное перечисление, а затем преобразовать его в команды GDI +. мы сделали это в Delphi , возможно, вам может помочь исходный код.

...