VB.NET(2003)で下記のように
あるファイルを描画後にその上に文字列を表示しています。
文字列が見やすいように、画像を明るくしたいのですが、
どのようにすればよろしいのでしょうか?
picコマ.Image = System.Drawing.Image.FromFile("***.jpg"))
Dim g As Graphics = Graphics.FromImage(picコマ.Image)
Dim f As New Font("MS Pゴシック", 12)
g.DrawString("*********P", f, Brushes.Black, 0, 240)
f.Dispose()
g.Dispose()
白もしくは灰色の画像を裏につくり、それを半透過させて貼り付ける、という感じかな
もしくは昔の手法で、白と黒のタイルパターン画像を裏につくって、それの黒を透過させて貼り付ける、というのもあり(擬似的だけど)
どっちで続ける?
http://f57.aaa.livedoor.jp/~jeanne/bbs/faq.cgi?mode=al2&namber=1384&rev=&no=0
すいません、回答が帰ってくるか心配でしたので、
他の掲示板も載せました。
こちらで、続けたいと思います。
VBの画像処理に関しては素人なのですが、
半透過ということですが、コード的に
どのようにすればいいのでしょうか?
詳しい説明はHelpを参照願いたいのだが、.NETにはαブレンドなる便利な
機能があるのです
Dim Alpha As Integer = 100 'この値を変えてみる
Dim MyRec As New Rectangle(0, 0, PictureBox1.Width, PictureBox1.Height)
Dim Mybrush As Brush = New SolidBrush(Color.FromArgb(Alpha, 255, 255, 255))
Dim f As New Font("MS Pゴシック", 12)
PictureBox1.Image = New Bitmap(Application.StartupPath & "\1.jpg")
Dim g As Graphics = Graphics.FromImage(PictureBox1.Image)
g.FillRectangle(Mybrush, MyRec)
g.DrawString("秋の夜長", f, Brushes.Black, 0, 240)
Mybrush.Dispose()
g.Dispose()
f.Dispose()
この他にも、ColorMatrixを使用した方法もある。
Dim g As Graphics = PictureBox1.CreateGraphics()
Dim img As Image = Image.FromFile(Application.StartupPath & "\1.jpg")
Dim Cmatrix As New System.Drawing.Imaging.ColorMatrix
Cmatrix.Matrix33 = 0.2F 'この値を変えてみる
Dim ImageAtt As New System.Drawing.Imaging.ImageAttributes
ImageAtt.SetColorMatrix(Cmatrix)
g.DrawImage(img, New Rectangle(0, 0, img.Width, img.Height), 0, 0, img.Width, img.Height, GraphicsUnit.Pixel, ImageAtt)
Dim f As New Font("MS Pゴシック", 12)
g.DrawString("秋の夜長", f, Brushes.Black, 0, 240)
f.Dispose()
img.Dispose()
g.Dispose()
我龍院忠太さん具体的はコードありがとうございます。
透過できました。
HELPを参照しながら勉強していきたいと思います。
ツイート | ![]() |