2012-04-13 14 views
1

私たちはLinux上とWindows上でmonoを使用していますが、私たちが持っているプロジェクトはレンダリングされたテキストでビットマップを生成することです。Mono c#TextRenderingHint.SingleBitPerPixelGridFit WindowsとLinux

ビットマップが(ピクセルフォーマット毎のビット)でなければなりませんので、我々は我々がどのシェーディングを得ることはありません任意のアンチエイリアスを省略しなければなりません、このために、すべての文字ば完全にB & W.

我々はTextRenderingHint.SingleBitPerPixelGridFitを使用することをどのWindows上で、それは何らかの形でこの設定を無視Linux上でビットマップ値0か255上の各画素ごとに生成し、我々は0から窓に発生した255

ビットマップにピクセル値のために得る:

OKを働い設定でBITMAP:(http://shrani.si/f/2p/Mg/9JkctiS/408b7606-b74e-46cc-a5d9-.png)(申し訳ありませんが、私はpに許可されていませんostの画像:)

ビットマップは、linuxで生成されました。 ...

任意のアイデア方法を

 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; 

明確に示されているの違い:(!それは持つべきではないSHADESを持っている) 、NOT OK BITMAP:(http://shrani.si/f/3a/ye/1Sn9rQjM/e75ab589-2061-421b-9275-.png

ビットマップを用いて生成されますこれを解決するには?これは何らかのシステム設定なのかな?

+0

私はあなたのために画像を修正しました。ようこそ! – abatishchev

+0

彼らは壊れてしまって、もはやピクセルグリッドフィッティングを示していません。ロールバック。 –

+0

あなたは答えを得ることができましたか?私は同じ問題を抱えています... – frankhommers

答えて

0

同じ問題があります。 アンチエイリアスなしでセットアップモノプリントを行う方法が見つかりません。 しかし、私はシステムレベルでタスクを解決する方法を見つける。 必要に応じて、選択したフォントとサイズの設定のみをカスタマイズできます。 既存のファイルをアンチエイリアス設定で編集するか、新規作成してください。 /etc/fonts/conf.d/10-antialias.conf アンチエイリアスをfalseに設定します。

<?xml version="1.0"?> 
<!DOCTYPE fontconfig SYSTEM "fonts.dtd"> 
<fontconfig> 
<!-- Use the Antialiasing --> 
    <match target="font"> 
    <edit name="antialias" mode="assign"><bool>false</bool></edit> 
    </match> 
</fontconfig> 
関連する問題