C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: VBにおける文字列描画について


(過去ログ 111 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■65793 / inTopicNo.1)  VBにおける文字列描画について
  
□投稿者/ 陽斗 (1回)-(2013/03/18(Mon) 18:44:31)

分類:[VB.NET/VB2005 以降] 

開発環境:Visual Studio Professional 2012, Windows7
使用言語:Visual BASIC
です。初めて質問させていただきます。

現在、System.Drawing.Graphics.DrawStringを用いて文字列描画を行なった後、PictureBoxにそれを描画するというソースコードを書いております。
具体的には、
        Dim bmp As New Bitmap(PictureBox1.Width, PictureBox1.Height)
        Dim g As Graphics = Graphics.FromImage(bmp)
        Dim objFont As New Font("MS Pゴシック", 9, FontStyle.Bold)
        g.FillRectangle(Brushes.White, New Rectangle(0, 0, PictureBox1.Width, PictureBox1.Height))
        g.DrawString("あああ", objFont, Brushes.Black, 0, 0)
        PictureBox1.Image = bmp
        objFont.Dispose()
        g.Dispose()
と言ったコードを書いております。
これはこれで正常に動作するのですが、これによりPictureboxに表示される画像とWindows付属のペイントで白地に文字を描画した画像を拡大して比較すると、違った画像になっているように思えます。Windows付属のペイントのように文字列を描画するには、どのように改善したら良いのでしょうか。

ご教授いただければ幸いです。

引用返信 編集キー/
■65795 / inTopicNo.2)  Re[1]: VBにおける文字列描画について
□投稿者/ Hongliang (46回)-(2013/03/18(Mon) 19:38:53)
> Dim objFont As New Font("MS Pゴシック", 9, FontStyle.Bold)
「MS Pゴシック」(アルファベットが全角)じゃないとダメなはずですが。
引用返信 編集キー/
■65799 / inTopicNo.3)  Re[2]: VBにおける文字列描画について
□投稿者/ 陽斗 (2回)-(2013/03/18(Mon) 21:22:06)
2013/03/18(Mon) 21:22:36 編集(投稿者)
2013/03/18(Mon) 21:22:33 編集(投稿者)

No65795 (Hongliang さん) に返信
>>Dim objFont As New Font("MS Pゴシック", 9, FontStyle.Bold)
> 「MS Pゴシック」(アルファベットが全角)じゃないとダメなはずですが。

ご指摘ありがとうございます。しかし、全角に修正したところで質問した状況は改善されませんでした。

具体的には、プログラムで作成した画像については文字がすべて黒一色で表示されているのに対し、ペイントで作成した画像についてはそうはなっていないという違いが存在しました。

引き続きご教授いただければ幸いです。
引用返信 編集キー/
■65801 / inTopicNo.4)  Re[3]: VBにおける文字列描画について
□投稿者/ とっちゃん (60回)-(2013/03/18(Mon) 22:13:03)
とっちゃん さんの Web サイト
No65799 (陽斗 さん) に返信
> 具体的には、プログラムで作成した画像については文字がすべて黒一色で表示されているのに対し、ペイントで作成した画像についてはそうはなっていないという違いが存在しました。
>
アンチエイリアスの関係ですかね?

どんな違いがあるのかわからないので何とも言えませんが。。。
あと、GDIとGDI+では文字の描画方法が異なります。そのあたりが関係あるかもしれません。
ペイントが文字列描画をどうやってるかわかりませんのでこちらも何とも言えませんけど。


> 引き続きご教授いただければ幸いです。
http://www.tt.rim.or.jp/~rudyard/torii009.html

引用返信 編集キー/
■65802 / inTopicNo.5)  Re[4]: VBにおける文字列描画について
□投稿者/ 陽斗 (3回)-(2013/03/18(Mon) 23:10:20)
2013/03/18(Mon) 23:10:37 編集(投稿者)
2013/03/18(Mon) 23:10:33 編集(投稿者)

No65801 (とっちゃん さん) に返信
> ■No65799 (陽斗 さん) に返信
>>具体的には、プログラムで作成した画像については文字がすべて黒一色で表示されているのに対し、ペイントで作成した画像についてはそうはなっていないという違いが存在しました。
>>
> アンチエイリアスの関係ですかね?
>
> どんな違いがあるのかわからないので何とも言えませんが。。。
> あと、GDIとGDI+では文字の描画方法が異なります。そのあたりが関係あるかもしれません。
> ペイントが文字列描画をどうやってるかわかりませんのでこちらも何とも言えませんけど。
>
>
>>引き続きご教授いただければ幸いです。
> http://www.tt.rim.or.jp/~rudyard/torii009.html
>

ご指摘ありがとうございます。アンチエイリアスの設定をしたら一致いたしました。
具体的には、
g.TextRenderingHint = TextRenderingHint.ClearTypeGridFit
を追加することで解決しました。ありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -