Это поведение определяется используемым «запросом-совпадением» . Как указано в документации, по умолчанию используется «ant», что указывает на использование AntPathRequestMatcher , а альтернативой является «regex», RegexRequestMatcher . Javadocs (связанный) дает специфику в отношении совпадений, в том числе тот факт, что предыдущий соответствует запросу «servletPath + pathInfo» запроса, а последний против его «servletPath + pathInfo + queryString».
Используйте свой собственный код до вызова SelectActiveFrame () и после этого измените его на следующие строки:
frames[0] = new Bitmap(GG);
pictureBox1.Image = frame[0];
Это должно сделать трюк. Не забывайте, что вы удаляете созданные изображения.
О, это работает, но не так, как вы ожидаете.
Когда вы устанавливаете активный кадр изображения gif, он фактически перезапускает свою анимацию из этого кадра. Вы должны остановить его при изменении фрейма, например, установив pictureBox.IsEnabled
в false. Попробуйте использовать следующий код
private Image img;
public Form1()
{
InitializeComponent();
img = Image.FromFile(@"C:\Users\Administrator\TEST C#\TEST2frame2\chef.gif");
pictureBox1.Image = img;
}
private void button1_Click(object sender, EventArgs e)
{
var dim = new FrameDimension(img.FrameDimensionsList[0]);
img.SelectActiveFrame(dim, 1);
pictureBox1.Enabled = false;
}
Попробуйте нажать кнопку в разные моменты времени, и вы увидите, что будет изменяться рамка активного изображения.