Múlt heti „Tetszőleges számú kép tárolása egy állományba” című cikkünkben előállítottunk programból egy olyan TIF állományt, melyben több kép is helyet kapott. Most ezt az állományt képekre bontjuk és a képeket egyesével megjelenítejük.
Ennek megvalósításához töltsük be a feldolgozandó képet egy Bitmap-be.
Dim bmp As New Bitmap(Application.StartupPath + "\_teszt.tif")
Fontos lehet tudnunk, hogy hány kép került tárolásra ebbe a képállományba. Ezt a Bitmap GetFrameCount függvényével határozhatjuk meg.

GetFrameCount
Osztály: System.Drawing.Image
Public Function GetFrameCount( _
ByVal dimension As FrameDimension _
) As Integer
Olyan képállományoknál, melyek több képet is tartalmaznak, a GetFrameCount függvény adja vissza, hogy hány darab került tárolásra.
Paraméterek
ByVal dimension As FrameDimension
FrameDimension osztálytípusban kell megadnunk annak a dimenziónak az azonosítóját, amelyben a tárolt képek számára kíváncsiak vagyunk.
Visszatérési érték
A tárolt képek száma.
Példa
Dim fd As New FrameDimension(bmp.FrameDimensionsList(0))
trackBar1.Maximum = bmp.GetFrameCount(fd) - 1
A tetszőleges számú kép közül egynek a megjelenítéséhez a következő lépésekre van szükségünk: a Bitmap-ben aktiválnunk kell azt a képet, mellyel dolgozni szeretnénk. Ezt követően a Bitmap létrehozott példányával már úgy dolgozhatunk, mintha az csak egy képet tartalmazna, vagyis a Bitmap kirajzolásakor csak az aktivált kép jelenik meg.

SelectActiveFrame
Osztály: System.Drawing.Image
Public Function SelectActiveFrame( _
ByVal dimension As FrameDimension, _
ByVal frameIndex As Integer _
) As Integer
Több képet tároló képállományban a SelectActiveFrame függvény segítségével választhatjuk ki azt a képet, mellyel dolgozni szeretnénk.
Paraméterek
ByVal dimension As FrameDimension
FrameDimension osztálytípusban kell megadnunk annak a dimenziónak az azonosítóját, amelyben a tárolt képet elérni szeretnénk.
ByVal frameIndex As Integer
Az aktiválandó kép sorszáma.
Visszatérési érték
Az aktivált kép sorszáma.
Példa
Dim g As Graphics = e.Graphics
Dim bmp As New Bitmap(Application.StartupPath + "\_teszt.tif")
Dim fd As New FrameDimension(bmp.FrameDimensionsList(0))
bmp.SelectActiveFrame(fd, trackBar1.Value)
g.DrawImage(bmp, 40, 20)