Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
SelectActiveFrameについて
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30487#CommentId83943
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
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) としたときは、書き込んだところだけ
すべて最後に書き込んだ画像になりました
このようになる原因が何なのかと対策方法はありますでしょうか?
よろしくおねがいします