/// <summary>
/// 获取指定帧数的图片
/// </summary>
/// <param name="path"></param>
/// <param name="index"></param>
/// <returns></returns>
private
Image GetImg(
string
path,
int
index)
{
Image res = Image.FromFile(path);
int
width = res.Width;
int
height = res.Height;
Image gif =
new
Bitmap(width, height);
Image frame =
new
Bitmap(width, height);
Graphics g = Graphics.FromImage(gif);
Rectangle rg =
new
Rectangle(0, 0, width, height);
Graphics gFrame = Graphics.FromImage(frame);
int
forIndex = 0;
foreach
(Guid gd
in
res.FrameDimensionsList)
{
FrameDimension fd =
new
FrameDimension(gd);
FrameDimension f = FrameDimension.Time;
int
count = res.GetFrameCount(fd);
for
(
int
i = 0; i < count; i++)
{
res.SelectActiveFrame(f, i);
if
(0 == i)
{
if
(forIndex == index)
{
g.DrawImage(res, rg);
bindProperty(res, gif);
return
gif;
}
}
else
{
if
(forIndex == index)
{
gFrame.DrawImage(res, rg);
bindProperty(res, frame);
return
frame;
}
}
forIndex++;
}
}
res.Dispose();
return
null
;
}