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

■35437 / 親記事)  Drawstringでの透過文字作成
  
□投稿者/ はる 一般人(14回)-(2023/06/05(Mon) 10:56:56)
  • アイコン環境/言語:[Windows11 64bit .Net6.0 c#] 
    分類:[.NET] 

    お世話になっております。

    https://dobon.net/vb/dotnet/graphics/alphabland.html
    を参考に透過の枠ないに透過文字を描画したいんですが、
    フォントサイズが小さくなると文字が透過になりません

    背景があるとフォントサイズか小さくても透過になります。
    背景は設定できないのでサイズが小さくても透過にする方法はありませんか?
    よろしくお願いします。

    添付の画像は
    一番上が68P
    真ん中が66P
    一番下が66P+背景あり
    です
304×283 => 250×232
イメージ
1685930216.jpg
/14KB
マルチポストを報告
違反を報告
引用返信 削除キー/
■35438 / ResNo.1)  Re[1]: Drawstringでの透過文字作成
□投稿者/ はる 一般人(15回)-(2023/06/05(Mon) 11:24:01)
  • アイコン追記です

    帳票作成時にコピー不可みたいに描画したいので
    背景は設定できないんです。()

    文言が条件によって変わるので画像をあらかじめ作成せずプログラムでてきないかとおもいまして。
違反を報告
引用返信 削除キー/
■35439 / ResNo.2)  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
違反を報告
引用返信 削除キー/
■35440 / ResNo.3)  Re[2]: Drawstringでの透過文字作成
□投稿者/ はる 一般人(16回)-(2023/06/05(Mon) 13:53:59)
  • アイコンNo35439に返信(魔界の仮面弁士さんの記事)
    > ■No35437に返信(はるさんの記事)


    できました!!
    ありがとうございます。
    お世話になりました。
解決み!
違反を報告
引用返信 削除キー/



スレッド内ページ移動 / << 0 >>

このスレッドに書きこむ

Mode/  Pass/


- Child Tree -