マルチTIFFやアニメーションGIFに含まれるすべてのイメージを表示する補足:画像の表示方法が分からないという方は、まず「画像ファイルを表示する」をご覧ください。 マルチTIFFやアニメーションGIFのように複数のイメージを含んだ画像ファイルからすべてのイメージを取り出して表示するには、Image.SelectActiveFrameメソッドでアクティブなフレームを変更し、すべてのフレームのイメージを表示するようにすればよいでしょう。 まず、複数のイメージを含んだ画像ファイルをImageオブジェクトに読み込みます。そして、Image.FrameDimensionsListプロパティにより、フレームのディメンションGUIDを取得し、これからFrameDimensionオブジェクトを作成します。これを使用して、SelectActiveFrameメソッドを呼び出します。 以下にアニメーションGIFファイル(C:\test.gif)内のすべてのイメージをPictureBox(PictureBox1)に表示するサンプルを示します。 [VB.NET] '画像ファイルのパス Dim filePath As String = "C:\test.gif" Dim g As Graphics = PictureBox1.CreateGraphics() '画像を読み込む Dim img As Image = Image.FromFile(filePath) 'FrameDimensionを取得 Dim fd As New FrameDimension(img.FrameDimensionsList(0)) 'フレーム数を取得 Dim fd_count As Integer = img.GetFrameCount(fd) Dim y As Integer = 0 Dim i As Integer For i = 0 To fd_count - 1 'フレームを選択 img.SelectActiveFrame(fd, i) '画像を表示 g.DrawImage(img, 0, y, img.Width, img.Height) y += img.Height Next i img.Dispose() g.Dispose() [C#] //画像ファイルのパス string filePath = "C:\\test.gif"; Graphics g = PictureBox1.CreateGraphics(); //画像を読み込む Image img = Image.FromFile(filePath); //FrameDimensionを取得 FrameDimension fd = new FrameDimension(img.FrameDimensionsList[0]); //フレーム数を取得 int fd_count = img.GetFrameCount(fd); int y = 0; for (int i = 0; i < fd_count; i++) { //フレームを選択 img.SelectActiveFrame(fd, i); //画像を表示 g.DrawImage(img, 0, y, img.Width, img.Height); y += img.Height; } img.Dispose(); g.Dispose(); (この記事は、「.NETプログラミング研究 第49号」で紹介したものを基にしています。) 注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。
|
|
Copyright 2002-2008 DOBON!. All rights reserved.
|