投稿者 allgreen  (社会人) 投稿日時 2020/5/1 05:03:59
Imports System.Drawing.Imaging
Public Class Form1
    Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
        Dim マルチ画像 As Image
        Dim ページ数 As Integer
        Dim i As Integer
        Dim 分割画像() As Image

        マルチ画像 = Image.FromFile("マルチ.tif")
        Dim fd As New FrameDimension(マルチ画像.FrameDimensionsList(0))
        ページ数 = マルチ画像.GetFrameCount(fd)
        ReDim 分割画像(ページ数 - 1)
        For i = 0 To ページ数 - 1
            画像.SelectActiveFrame(fd, i)
            分割画像(i) = 画像
        Next
    End Sub
End Class

このプログラムですが
マルチのtifファイルを読み込んで、ページ数を取得
1ぺーじごとに分割画像という配列に代入するのですが
思うような結果になりません

3ページのファイルの場合
0ページの画像が、分割画像(0)に
1ページの画像が、分割画像(1)に
2ページの画像が、分割画像(2)に
ところが結果は、分割画像(0)も(1)も(2)もすべて、2ページの画像になります
pictureboxを複数並べて、そこに表示させようとしても同じでした
ただ、pictureboxの場合は、doeventsなど待ち時間を作ってやれば正しく表示されますが
配列変数に代入するときは、待ち時間を作ってもだめでした
動作確認などいろいろやってみてるのですが
一旦は、0ページの画像が、分割画像(0)に書き込まれてます
step を2にして
分割画像(0) (2) (4) としたときは、書き込んだところだけ
すべて最後に書き込んだ画像になりました

このようになる原因が何なのかと対策方法はありますでしょうか?

よろしくおねがいします