DOBON.NETプログラミング道掲示板

No35439 の記事


■35439 / )  Re[1]: Drawstringでの透過文字作成
□投稿者/ 魔界の仮面弁士 大御所(1548回)-(2023/06/05(Mon) 13:23:38)
  • アイコン
    No35437に返信(はるさんの記事)
    > フォントサイズが小さくなると文字が透過になりません
    ClearType フォントは LCD 前提のサブピクセルで
    スムージング処理が行われるため、この文脈だと
    ヒンティングに失敗してしまいます。
    
    事前に、AntiAliasGridFit もしくは
    AntiAlias を指定してください。
    
    CompositingQuality.HighQuality は背景がない場合は
    無意味ですが、背景ありのために残しておいても良いでしょう。
    
    Save / Restore はお好みで。
    
    using (var bmp = new Bitmap(280, 180))
    using (var g = Graphics.FromImage(bmp))
    using (var p = new Pen(Color.FromArgb(128, Color.Red), 12))
    using (var b = new SolidBrush(Color.FromArgb(128, Color.Yellow)))
    using (var f = new Font("Arial", 30))
    {
        g.Clear(Color.Empty);
        g.DrawRectangle(p, new Rectangle(10, 60, 260, 60));
        var state = g.Save();
        g.CompositingQuality = CompositingQuality.HighQuality;
        g.TextRenderingHint = TextRenderingHint.AntiAliasGridFit;
        g.DrawString("DOBON.NET", f, b, 15f, 70f);
        g.Restore(state);
        bmp.Save(@"E:\dobon35437.png");
    }

280×180 => 250×160
イメージ
dobon35437.png
/3KB
違反を報告
返信 削除キー/


Mode/  Pass/


- Child Tree -