新規作成で画像を作成する方法

タグの編集
投稿者 tk  (中学生) 投稿日時 2010/7/19 19:08:22
新規作成でpictureBoxに画像を表示する方法を教えてください。
画像を作成する前に画像のファイル名と画像サイズを選んで表示させるようにしたいです。

投稿者 特命司  (社会人) 投稿日時 2010/7/19 21:08:00
画像を読み込んで表示
Public Class Form1
    Dim fname As String
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
            fname = OpenFileDialog1.FileNames(0)

            PictureBox1.Image = Image.FromFile(fname)
            PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
        End If

    End Sub
End Class
投稿者 キューピット  (その他) 投稿日時 2010/7/19 21:52:27
こんにちは、いくらか砕いて書きます。
どういう風にしたいか今一つ分かり難いですが、想像すれば、
画像ファイル一覧の取得は下記で出来ます。
System.IO.Directory.GetFiles(....)
内容をListBoxに移すなど出来るでしょう。

画像ファイルからのイメージ取得は下記です。
Dim filename As String = "C:\......bmp"
Dim image1 As Image
image1 = Image.FromFile(filename)
Dim wdt As Integer = image1.Width '画像サイズはこれで取れる
Dim hgt As Integer = image1.Height

これを簡単に表示するには、PictureBoxへの貼り付けですね。
PictureBox1.Image = image1

貼り付けの前にSizeModeを下記に設定して置けば、任意サイズで表示できます。
PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
PictureBox1.Width = ....
PictureBox1.Height = ....

> 新規作成でpictureBoxに画像を表示

これは分かり難いですが、最初に無地で適当なサイズのpictureBoxを出して置くか、
非表示にして置くか、そんな所でしょう。
投稿者 トマト  (中学生) 投稿日時 2010/7/22 13:38:16
こういうことですか?
'未テスト 
Dim filename As String
Using dialog As New SaveFileDialog
    If dialog.ShowDialog() <> DialogResult.OK Then Return
    filename = dialog.FileName.
End Using

Dim bmp As Bitmap(幅, 高さ)
Dim g As Graphics = Graphics.FromImage(bmp)

描画

bmp.Save(filename)

まちがっていたらすいません。
投稿者 トマト  (中学生) 投稿日時 2010/7/27 18:08:39
おっと、↑に追記
PictureBox1.Image = bmp

これがないとPictureBoxに画像が表示されない…
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2010/7/27 18:20:37
# 指摘するべきかどうか迷っていたのだけれど、気が付いていないようなので。

> Dim bmp As Bitmap(幅, 高さ)
これだと、2 次元配列を宣言していることになってしまいますよ。
投稿者 まだまだ  (高校生) 投稿日時 2010/7/27 19:28:32
>> Dim bmp As Bitmap(幅, 高さ)
>これだと、2 次元配列を宣言していることになってしまいますよ。 

Dim bmp As New Bitmap(幅, 高さ)

ではないでしょうか。
投稿者 トマト  (中学生) 投稿日時 2010/8/8 12:08:27
すいませんミスです…