【】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 記事・情報の無断転載を禁止します。

「これがほしかった!厳選サンプルツール集」の注意点
●当サイトはリンクフリーです。
2024/12/07(土)00:05 更新