Wie kann Anti-Aliasing beim Rendern von WMF in BitMap in C # / WPF / WinForms aktiviert werden?
Warum werden dabei keine Linien usw. geglättet?
using (var myGraphics = Graphics.FromImage(bitmap))
{
myGraphics.CompositingQuality = CompositingQuality.HighQuality;
myGraphics.SmoothingMode = SmoothingMode.HighQuality;
myGraphics.TextRenderingHint = TextRenderingHint.AntiAliasGridFit;
myGraphics.Clear(backgroundColor);
myGraphics.EnumerateMetafile(m_metafile, new Point(0, 0), m_metafileDelegate);
}
Die Delegate-Funktion sieht folgendermaßen aus:
private bool MetafileCallback(EmfPlusRecordType recordType, int flags, int dataSize, IntPtr data, PlayRecordCallback callbackData)
{
byte[] dataArray = null;
if (data != IntPtr.Zero)
{
// Copy the unmanaged record to a managed byte buffer
// that can be used by PlayRecord.
dataArray = new byte[dataSize];
Marshal.Copy(data, dataArray, 0, dataSize);
}
m_metafile.PlayRecord(recordType, flags, dataSize, dataArray);
return true;
}
Muss ich PlayRecord für einen bestimmten Typ überschreiben, um hier ein Anti-Aliasing zu erhalten?
Die WMFs stammen aus AutoCAD, falls dies hilfreich ist.