2012-01-16 10 views
0

私はこれを短く単純にしておきます...私は以前この質問をしましたが、答えられませんでした。 私は、フォルダからいくつかの画像を取得し、それらを配列に追加したいと思います。 これは動作しません、誰かが明示的に私にそれを行う方法を教えてくれますか?ありがとう!フォームの負荷に複数の.jpgをファイルから画像配列に追加する

Private Sub Button1_Add(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    Dim PictureArray As New List(Of Image) 
    For Each item As String In Directory.GetFiles("C:\Users\turcotd\Desktop\ITLPers", "*.jpg", IO.SearchOption.AllDirectories) 
     Dim _Image As Image = Image.FromFile(item) 
     PictureArray.Add(_Image) 
    Next 

    If (i < 6) Then 
     Dim pb As New PictureBox 
     Me.FlowLayoutPanel1.Controls.Add(pb) 
     pb.Image = PictureArray(i) 
     i = i + 1 

enter image description here 感謝!

答えて

1

まず、DirectoryInfoの画像を上記のようなFileInfoから取得する方法を説明しました。

アレイの代わりにList(Of FileInfo)を使用しました。even than an ArrayListは非常に優れているため、アレイの代わりにmy answer on your previous questionに入力しました。リスト内の項目には、配列内の項目にアクセスするのと同じもの(インデックスまたは「foreach」を介して)にアクセスできます。

とにかく配列の使用をお考えの場合は、ToListの代わりにToArray-Extensionを使用するだけです。例:

Dim imageArray = dir.GetFiles("*.jpg", IO.SearchOption.AllDirectories).ToArray 

詳細については、FileInfo-Classを参照してください。たとえば、フルパスを取得するには、FileInfo.Nameを呼び出して画像名(パスを含まないファイル名)またはFileInfo.FullNameを取得する必要があります。

だから、これは動作するはずです:

Dim dir = New IO.DirectoryInfo("C:\Users\turcotd\Desktop\ITLPers") 
Dim images = dir.GetFiles("*.jpg", IO.SearchOption.AllDirectories).ToList 
Dim pictures As New List(Of PictureBox) 
For Each img In images 
    Dim picture As New PictureBox 
    picture.Image = Image.FromFile(img.FullName) 
    pictures.Add(picture) 
Next 
+0

ありがとう、ティム。しかし、今、どのように私はPictureBoxのリスト内の特定のインデックスにアクセスするでしょう。実際のpictureBoxの名前が「picBox1」であるとしましょう。どうすればいいのでしょうか。 picBox1 =(画像(1)) picBox2 =(画像2) 私が意味したのは? – Growler

+0

@Growler:私がすでに言ったように、あなたはインデックスを使ってアイテムにアクセスできます。たとえば、 'Dim picBox1 = pictures(1)'です。しかし、Listはゼロベース(配列と同様)であることに注意してください。したがって、最初のアイテムを取得するには 'pictures(0)'が必要です。 –

+0

私はこれを試しました。笑。私はばかだと思っていますが、実際にはこれらのことを試してみましたが、どうして何故画像を静的に追加する以外は何もしていないのですか? Dim imageArray()As String = {"C:\ Users \ turcotd \ Desktop \ ITLPers \ dan.jpg "、" C:\ Users \ turcotd \ Desktop \ ITLPers \ marcus.jpg "} – Growler

0

イメージがデータ型ではないため、fileinfoを使用してイメージをバイト配列に読み込むことができます。

ティムの答えhere at your previous questionこれは非常にうまくいくだけでリストに載せます。 その後、thelist.toarrayを呼び出すと、リストが配列になります。

編集: このリンクが見つかりました。

http://www.codeproject.com/KB/vb/ImageProccessing.aspx

それはかなり単純なプロセスです。

問題は、画像を文字列または整数として考えていることです。これはバイトの集合です。これが助けてくれたらと思っています。

+0

を申し訳ありませんが、私は彼の方法を試してみた、そしてそれが機能していません。だからここで私はティムの答えに従っていると仮定します:pictureArray(i)。ロード(ここには何ですか?) – Growler

関連する問題