【】Top
【】VB.NET
【】VB6.0
【】メールマガジンの購読
【】メールマガジンの解除
【】会社概要
【】お問い合わせ
姉妹サイト「バーチャルコネクション!」はこちらです。
姉妹サイト「七福神のメールでビンゴ!」はこちらです。
●24時間365日の安心をあなたにAT-LINK専用サーバ・サービスお勧めのサーバです。
|
|
|
|
|
画像を拡大・縮小して保存する
|
|
【注意書き】 ●VB.NET を使っているものとします。 ●動作環境は、Windows XX を使用しているとします。
.NET でも、画像を拡大・縮小して保存することが可能です。
この機能を使えば、簡単に、アプリケーション側で 指定する画像の大きさで統一管理したい場合などに活用できます。
フォームに次の様なコードを記述します
-----------VB.NETコーディングここから-------------------
1.フォームに、ボタンコントロールとピクチャボックスコントロール を配置します。 下記は、デフォルトのオブジェクトの名前と配置を示しています。
┏━━━━┓┏━━━━┓┏━━━━┓ ┃Button1 ┃┃Button2 ┃┃Button3 ┃ ┗━━━━┛┗━━━━┛┗━━━━┛
┏━━━━━━━━━━━━┓ ┃PictureBox1 ┃ ┃ ┃ ┃ ┃ ┗━━━━━━━━━━━━┛
2.ボタンコントロールの Button1 text プロパティに「拡大」と記述します。 Button2 text プロパティに「縮小」と記述します。 Button3 text プロパティに「保存」と記述します。
※説明用のためです。必須ではありません。
┏━━━━┓┏━━━━┓┏━━━━┓ ┃拡大 ┃┃縮小 ┃┃保存 ┃ ┗━━━━┛┗━━━━┛┗━━━━┛
┏━━━━━━━━━━━━┓ ┃PictureBox1 ┃ ┃ ┃ ┃ ┃ ┗━━━━━━━━━━━━┛
3.フォームをダブルクリックして、 フォームロードイベントのコード編集を開始して、 次のコードを記述します。
Dim MjstrPicPath As String
Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load PictureBox1.AllowDrop = True PictureBox1.Top = 0 PictureBox1.Left = 0 PictureBox1.Width = Me.Width PictureBox1.Height = Me.Height
End Sub
Private Sub PictureBox1_DragEnter(ByVal sender As Object, _ ByVal e As System.Windows.Forms.DragEventArgs) _ Handles PictureBox1.DragEnter '関連連づけの確認をしています。 'この場合、ドラッグアンドドロップの形式であるかどうか? If e.Data.GetDataPresent(DataFormats.FileDrop) Then
'ドロップ効果を取得 e.Effect = DragDropEffects.Copy Else 'ドロップ効果を破棄 e.Effect = DragDropEffects.None End If
End Sub
Private Sub PictureBox1_DragDrop(ByVal sender As Object, _ ByVal e As System.Windows.Forms.DragEventArgs) _ Handles PictureBox1.DragDrop
MjstrPicPath = e.Data.GetData(DataFormats.FileDrop)(0)
If Dir(MjstrPicPath) <> "" Then PictureBox1.Image = Image.FromFile(MjstrPicPath) PictureBox1.SetBounds(0, 0, _ PictureBox1.Image.Size.Width + 2, _ PictureBox1.Image.Size.Height + 30)
Me.Width = PictureBox1.Image.Size.Width + 2 Me.Height = PictureBox1.Image.Size.Height + 30 End If
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click '拡大 Dim objBtm As Bitmap Dim lngW As Long Dim lngH As Long objBtm = New Bitmap(PictureBox1.Image) lngW = objBtm.Width * 2 lngH = objBtm.Height * 2
Dim objBtm2 As New Bitmap(objBtm, lngW, lngH)
PictureBox1.Image = objBtm2
PictureBox1.SetBounds(0, 0, _ PictureBox1.Image.Size.Width + 2, _ PictureBox1.Image.Size.Height + 30)
Me.Width = PictureBox1.Image.Size.Width + 2 Me.Height = PictureBox1.Image.Size.Height + 30
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button2.Click '縮小
Dim objBtm As Bitmap Dim lngW As Long Dim lngH As Long objBtm = New Bitmap(PictureBox1.Image) lngW = objBtm.Width * 0.5 lngH = objBtm.Height * 0.5
Dim objBtm2 As New Bitmap(objBtm, lngW, lngH)
PictureBox1.Image = objBtm2
PictureBox1.SetBounds(0, 0, _ PictureBox1.Image.Size.Width + 2, _ PictureBox1.Image.Size.Height + 30)
Me.Width = PictureBox1.Image.Size.Width + 2 Me.Height = PictureBox1.Image.Size.Height + 30
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button3.Click '保存
Dim strImageFileName As String 'ファイル名を指定しています strImageFileName = "test.jpg" 'jpeg形式で保存します PictureBox1.Image.Save _ (strImageFileName, Imaging.ImageFormat.Jpeg)
End Sub
4.ビルドして実行します。
5.フォームに適当な画像ファイルをドラッグアンドドロップで ドロップします。
6.フォームに表示された ピクチャボックスに、ドラッグアンドドロップした 画面全体のイメージが表示されます。
7.フォームに表示された「拡大」ボタンを押します。
8.フォームに表示された ピクチャボックス画面全体のイメージが 2倍の大きさに拡大されます。
9.フォームに表示された「保存」ボタンを押します。
10. test.jpg というファイル名で拡大された画像が jpeg形式で保存される事を確認できます。
-----------VB.NETコーディングここまで-------------------
本サンプルでは、エクスプローラ等から、ファイルのドラッグアンドドロップ の操作で画像ファイルのパスを受け取っています。
そのパスをもとに、画像をピクチャボックスへ表示するようにしています。
また、画像の拡大は、2倍。画像の縮小は1/2倍となるようにしています。
保存する場合のファイル名は、 strImageFileName = "test.jpg" で 「test.jpg」に固定しています。
画像保存形式は、 Imaging.ImageFormat.Jpeg で jpeg 形式で保存するように指定しています。
|
http://anetm.com/dev/d.cgi?SC=DTDTL&o=OV7
Copyright(c)2001-2004 Ai Net Makoto 記事・情報の無断転載を禁止します。
|
|
|
|
|
|
|