msdn的站点搜索到一些C代码如下,但是这一段在CS中怎么写啊?谢谢了,呵呵!GUID   pageGuid = FrameDimensionPage;
CLSID  encoderClsid;
Image  multi(L"Multiframe.tif");// Get the CLSID of the PNG encoder.
GetEncoderClsid(L"image/png", &encoderClsid);// Display and save the first page (index 0).
multi.SelectActiveFrame(&pageGuid, 0);
graphics.DrawImage(&multi, 10, 10);
multi.Save(L"Page0.png", &encoderClsid, NULL);// Display and save the second page.
multi.SelectActiveFrame(&pageGuid, 1);
graphics.DrawImage(&multi, 200, 10);
multi.Save(L"Page1.png", &encoderClsid, NULL);// Display and save the third page.
multi.SelectActiveFrame(&pageGuid, 2);
graphics.DrawImage(&multi, 10, 150);
multi.Save(L"Page2.png", &encoderClsid, NULL);// Display and save the fourth page.
multi.SelectActiveFrame(&pageGuid, 3);
graphics.DrawImage(&multi, 200, 150);
multi.Save(L"Page3.png", &encoderClsid, NULL);

解决方案 »

  1.   

    给你一段代码,读出一个gif,点一下按钮后,分解每帧并写入硬盘private int i;
    Image image;private void button1_Click(object sender, System.EventArgs e)
    {
    FrameDimension fd = new FrameDimension(image.FrameDimensionsList[0]);
    int j = image.GetFrameCount(fd);
    while (i < j)
    {
    image.SelectActiveFrame(fd, i);
    image.Save(@"C:\aaa" + i + ".bmp", System.Drawing.Imaging.ImageFormat.Bmp);
    i++;
    }
    }private void Form6_Load(object sender, System.EventArgs e)
    {
    image = Image.FromFile(@"C:\aaa.gif");
    i = 0;
    }private void Form6_Closed(object sender, EventArgs e)
    {
    image.Dispose();
    }
      

  2.   

    稍微修改了一下Image image;private void button1_Click(object sender, System.EventArgs e)
    {
    FrameDimension fd = new FrameDimension(image.FrameDimensionsList[0]);
    int i = 0;
    int j = image.GetFrameCount(fd);
    while (i < j)
    {
    image.SelectActiveFrame(fd, i);
    image.Save(@"C:\aaa" + i + ".bmp", System.Drawing.Imaging.ImageFormat.Bmp);
    i++;
    }
    }private void Form6_Load(object sender, System.EventArgs e)
    {
    image = Image.FromFile(@"C:\aaa.gif");
    }private void Form6_Closed(object sender, EventArgs e)
    {
    image.Dispose();
    }
      

  3.   

    谢谢了,因为用惯了操作符重载中的自动转换,所以没有想到FrameDimension 是可以通过构造函数得到的,在代码中试过 
    FrameDimension fd = (FrameDimension ) image.FrameDimensionsList[0];
    是编译不成功的,折腾了我好几个小时,呵呵,谢谢了!
      

  4.   

    想给分,但是一点击“管理”就蹦出错误,点击后整个IE都退出了,郁闷啊,眼看我的信誉就要不保了,我用的是 XP+SP2+IE6+微软所有最新补丁