Visual Basic 中学校 掲示板 投稿内容
タグのない投稿を抽出 統計 RSS

Visual Basic 中学校 > 投稿一覧 >

画像の拡大

タグの編集...

投稿者 菊夜月   (高校生)   投稿日時 2016/7/29 20:37:37
こんばんわ。
現在、自分は画像をファイルから選んで表示するプログラムを組んでいるのですが、選択して、表示するとこまではできたのですが、表示する画像がすごく小さくて、自動拡大のプログラムを組んでも大きくなりませんでした。どこを直せばいいのでしょうか?または、追加したほうがいいプログラムなどがあったら、ご教授お願いします。

  Private Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles PictureBox1.Click

        Dim ofd As New OpenFileDialog()
        'ダイアログを表示する
        If ofd.ShowDialog() = DialogResult.OK Then
            'OKボタンがクリックされたとき
            '選択されたファイルを読み取り専用で開く
            Dim stream As System.IO.Stream
            stream = ofd.OpenFile()
            If Not (stream Is Nothing) Then
                '内容を読み込み、表示する
                Dim sr As New System.IO.StreamReader(stream, System.Text.Encoding.GetEncoding("Shift-JIS"))
                PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
                '閉じる
                Dim img As Image = Image.FromStream(stream, False, False) ' 検証なし
                ban = ban + 1
                Me.pic = New System.Windows.Forms.PictureBox
                Me.pic.SizeMode = PictureBoxSizeMode.StretchImage
                PictureBox1.Controls.Add(Me.pic)
                Me.pic.Image = New Bitmap(img)
                Me.pic.BringToFront()
                sr.Close()
                stream.Close()

            End If
        End If
    End Sub
End Class

投稿者 魔界の仮面弁士   (社会人)   投稿日時 2016/8/12 00:57:31
PictureBox の上に別の PictureBox を貼り付けているのは意図的なものでしょうか?


> 自動拡大のプログラムを組んでも大きくなりませんでした。
『自動拡大のプログラム』というのが、どの部分を指しているのか分かりませんでしたが、
今のままだと、New した直後の DefaultSize の PictureBox に合うように、
画像がリサイズ表示されてしまっています。


> どこを直せばいいのでしょうか?
簡単なのは、
 Me.pic.SizeMode = PictureBoxSizeMode.StretchImage
の部分を、PictureBoxSizeMode.AutoSize に変更することですね。

もし、StretchImage のままにするのであれば、Controls.Add する前に、
その PictureBox の Size を明示する必要があります。たとえば
縦横2倍にするのなら、「Me.pic.Size = New Size(img.Width * 2, img.Height * 2)」とか。