Linux と Windows で mono を使用しています。レンダリングされたテキストでビットマップを生成するプロジェクトの 1 つです。
ビットマップは (ビット/ピクセル形式) である必要があるため、シェーディングを取得しないアンチエイリアスを省略し、すべての文字を完全に白黒にする必要があります。
このために、TextRenderingHint.SingleBitPerPixelGridFit を使用します。これは、Windows ではビットマップの各ピクセルに対して 0 または 255 のいずれかを生成し、Linux ではこの設定を何らかの形で無視し、0 から 255 までのピクセル値を取得します。
Windowsで生成されたビットマップ:設定が機能している
OK BITMAP : ( http://shrani.si/f/2p/Mg/9JkctiS/408b7606-b74e-46cc-a5d9-.png ) (申し訳ありませんが、写真の投稿は許可されていません :)
Linux で生成されたビットマップ: 設定がなぜか無視された?!? (あってはならない色合いがあります!) NOT OK BITMAP: ( http://shrani.si/f/3a/ye/1Sn9rQjM/e75ab589-2061-421b-9275-.png )
ビットマップは以下で生成されます:
b = new Bitmap(_width, _height, PixelFormat.Format16bppRgb555);
g = Graphics.FromImage(b);
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None;
g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighSpeed;
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.Low;
g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SingleBitPerPixelGridFit;
違いがはっきりと表れている...
これを解決する方法はありますか?これは何らかのシステム設定か何かですか?