読者です 読者をやめる 読者になる 読者になる

GDI+でEMF+をアンチエイリアスなしでレンダリングする

EMF+をレンダリングしようとすると、GDIだけではどうにもならないものの、かといって、GDI+に全てお任せにすると、アンチエイリアスがデフォルトでかかってしまう。一応、GDI+には、アンチエイリアス系をOFFにするメソッド、Graphics::SetTextRenderingHintGraphics::SetSmoothingMode があるのだが、EMF+のレンダリング前にこのメソッドを

g.SetSmoothingMode(Gdiplus::SmoothingModeNone);
g.SetTextRenderingHint(Gdiplus::TextRenderingHintSingleBitPerPixelGridFit);

のように呼び出しておいても全く効果がない。どうやら、ちゃんとEMF+のレコードを解析しないといけないらしい。