図形を拡大表示するには・・?
- 題名: 図形を拡大表示するには・・?
- 著者: うみねこ
- 日時: 2005/08/07 23:28:15
- ID: 12116
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: 図形を拡大表示するには・・?
- 著者: 管理人
- URL: http://dobon.net/
- 日時: 2005/08/08 1:53:48
- ID: 12118
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: 図形を拡大表示するには・・?
- 著者: うみねこ
- 日時: 2005/08/08 21:18:40
- ID: 12132
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
【解決したい問題】
はじめまして。
最近プログラミングに興味を持ち、見よう見まねで色々試しています。
こちらのHPに載っている記事はとても勉強になります〜。
早速、やってみたのですが、少しうまくいかない所があり、
質問させていただきます。
拡大表示についての質問です。
◆フォーム1にPictureBox1とButton1・2・3
(1:線を引く2:画像を表示する3:拡大するボタン)
を作りました。
1を押すと、pictureBox1に線が表示されます。
2を押すと線が消え、画像ファイルが表示されます。
もう一度1をおすと、画像の上に線が表示されます。
そして、3を押すと、画像ファイルのみが拡大され、線は元のサイズのままです。
1・2・3(または、2・1・3)の順でボタンを押すと
2つが一緒に拡大するようにしたいのですが、可能でしょうか?
"PictureBoxのImageプロパティに関するよくある勘違い"のページを
読んでこれかな?と思い、線を引くコードに
Dim NGRAPH As Graphics = Graphics.FromImage(PictureBox1.Image)
を入れればいいのかな、と思ったのですが、入れてみると
「'System.ArgumentNullException' のハンドルされていない例外が system.drawing.dll で発生しました。
追加情報 : 値を Null にすることはできません。」
というエラーメッセージが出ます。
よろしくお願いします〜(;;)
コードは以下のように書きました。(長々とすみません・・)
’線を引く
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim NGRAPH As Graphics = PictureBox1.CreateGraphics()
Dim Pencil As New Pen(Color.Black, 1)
NGRAPH.DrawLine(Pens.Blue, 0, 0, 100, 100)
NGRAPH.Dispose()
End Sub
’画像を読込
Private Sub Button2_Click_(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
OpenFileDialog1.Filter = "JPEG|*.jpg|GIF|*.gif|ビットマップ|*.bmp|すべてのファイル (*.*)|*.*"
OpenFileDialog1.FilterIndex = 3
If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
PictureBox1.Image = New Bitmap(OpenFileDialog1.OpenFile())
Else
Exit Sub
End If
End Sub
'PictureBox1のImageを1.5倍に拡大
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim PIMG As Image = PictureBox1.Image
Dim NGRAPH As Graphics = PictureBox1.CreateGraphics()
If (PIMG Is Nothing) Then
MsgBox("イメージがありません", MsgBoxStyle.Information)
Exit Sub
End If
NGRAPH.InterpolationMode=Drawing2D.InterpolationMode._
NearestNeighbor
NGRAPH.DrawImage(PIMG, 0, 0, 1.5F * PIMG.Width, 1.5F * PIMG.Height)
NGRAPH.Dispose()
PIMG.Dispose()
End Sub