C#获取Gif图片每一帧的时间
2010-05-02 05:10
731 查看
Image img=Image.FromFile("C://1.gif");//加载Gif图片
FrameDimension dim = new FrameDimension(img.FrameDimensionsList[0] );
for (int i = 0; i < img.GetFrameCount(dim);i++ )//遍历图像帧
{
img.SelectActiveFrame(dim, i);//激活当前帧
for (int j = 0; j < img.PropertyIdList.Length; j++)//遍历帧属性
{
if ((int)img.PropertyIdList.GetValue(j) == 0x5100)/.如果是延迟时间
{
PropertyItem pItem = (PropertyItem)img.PropertyItems.GetValue(j);//获取延迟时间属性
byte[] delayByte = new byte[4];//延迟时间,以1/100秒为单位
delayByte[0] = pItem.Value[i * 4];
delayByte[1] = pItem.Value[1 + i * 4];
delayByte[2] = pItem.Value[2 + i * 4];
delayByte[3] = pItem.Value[3 + i * 4];
int delay=BitConverter.ToInt32(delayByte, 0)*10; //乘以10,获取到毫秒
MessageBox.Show(delay.ToString());//弹出消息框,显示该帧时长
break;
}
}
}
FrameDimension dim = new FrameDimension(img.FrameDimensionsList[0] );
for (int i = 0; i < img.GetFrameCount(dim);i++ )//遍历图像帧
{
img.SelectActiveFrame(dim, i);//激活当前帧
for (int j = 0; j < img.PropertyIdList.Length; j++)//遍历帧属性
{
if ((int)img.PropertyIdList.GetValue(j) == 0x5100)/.如果是延迟时间
{
PropertyItem pItem = (PropertyItem)img.PropertyItems.GetValue(j);//获取延迟时间属性
byte[] delayByte = new byte[4];//延迟时间,以1/100秒为单位
delayByte[0] = pItem.Value[i * 4];
delayByte[1] = pItem.Value[1 + i * 4];
delayByte[2] = pItem.Value[2 + i * 4];
delayByte[3] = pItem.Value[3 + i * 4];
int delay=BitConverter.ToInt32(delayByte, 0)*10; //乘以10,获取到毫秒
MessageBox.Show(delay.ToString());//弹出消息框,显示该帧时长
break;
}
}
}
相关文章推荐
- Java图片处理 - gif图获取一帧图片
- Java图片处理之获取gif图一帧图片的两种方法
- C# 操作Excel ——Excel获取数据、时间、图片
- 安卓显示GIF图片,并且获取GIF图片的时间
- C# 操作Excel获取数据、时间、图片
- delphi GDI+ 获取GIF图片的每一帧 转为bmp图片
- C# 操作Excel ——Excel获取数据、时间、图片
- C# 获取GIF帧率-每张图像的时间间隔
- C#获取图片的后缀名
- C# 根据当前时间获取,本周,本月,本季度等时间段
- C#中PictureBox控件获取网络图片并显示出来
- C#中获取当前时间
- c# 获取时间
- C#获取指定文件夹下指定时间后创建的文档
- c#学习(2):大图片的特效处理与获取屏幕上任一点的rgb值
- C# 获取系统当前时间 长格式
- C#根据时间范围获取每年每月每周的分组
- Android获取视频文件某一帧并设置图片
- C# 根据当前时间获取,本周,本月,本季度等时间段
- c# 获取微妙时间