|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - Как определить конец проигрывания gif |
|
.NET - Как определить конец проигрывания gif
|
Старожил Сообщения: 154 |
Здравствуйте, есть форма, на которой обьект - PictureBox. И вот такой незамысловатый код. Вопрос в том - как определить конец проигрывания gif анимации, ну или заставить ее проигрывать покадрово командой, а не как по дефилту - автоматом по-кругу. Просто время засечь не катит ибо на разных машинах оно разное (вопрос производительности в конкретный момент)
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowsFormsApplication3 { public partial class Form1 : Form { public int local_time; Random rand; int last; public Form1() { InitializeComponent(); local_time = 0; rand = new Random(); choise.Start(); this.SetDesktopLocation(System.Windows.Forms.Screen.PrimaryScreen.Bounds.Right - 109, System.Windows.Forms.Screen.PrimaryScreen.Bounds.Bottom - 121); } private void choise_Tick(object sender, EventArgs e) { int choises; do { choises = rand.Next(4, 11); } while (choises == last); if (choises == 10) { pictureBox1.Image = WindowsFormsApplication3.Properties.Resources._1_4_5sec; pos1.Start(); } else if (choises == 9) { pictureBox1.Image = WindowsFormsApplication3.Properties.Resources._2_3sec; pos2.Start(); } else { pictureBox1.Image = WindowsFormsApplication3.Properties.Resources.stay_0_4sec; pos3.Start(); } last = choises; choise.Stop(); } private void pos1_Tick(object sender, EventArgs e) { pos1.Stop(); choise.Start(); } private void pos2_Tick(object sender, EventArgs e) { pos2.Stop(); choise.Start(); } private void pos3_Tick(object sender, EventArgs e) { pos3.Stop(); choise.Start(); } private void picture_refresher_Tick(object sender, EventArgs e) { pictureBox1.Refresh(); } } } |
|
Отправлено: 19:54, 13-01-2011 |
Ветеран Сообщения: 20133
|
Профиль | Отправить PM | Цитировать Beyound, конкретно код не дам, но очевидно, по счётчику фреймов в GIF файле.
|
------- Отправлено: 20:37, 13-01-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 154
|
Профиль | Отправить PM | Цитировать в том то и вопрос - как его извлечь и picturebox или из picturebox.image или еще как???
|
Отправлено: 22:54, 13-01-2011 | #3 |
Ветеран Сообщения: 3320
|
Профиль | Отправить PM | Цитировать PictureBox скрывает всю рутинную работу по организации проигрывания анимации Gif файла. Вручную, для иллюстрации самого процесса, достаточно воспользоваться классом Image и таймером.
Единственное, время анимации берётся не из Gif файла, а задаётся явно (100мс на каждый кадр в примере выше). Собственно If iFrame >= frameCount и будет условием окончания проигрывания анимации. |
Отправлено: 17:08, 16-01-2011 | #4 |
Старожил Сообщения: 154
|
Профиль | Отправить PM | Цитировать спасиб большое.. попробую... с темой про разбиение на фреймы и выбор активфрейма я уже догадался.. а вот с тем как побороть стандартную прорисовку, которая начинает крутить фреймы по кругу заново чето недогадался попробовать класс graphics. как попробую отпишусь
|
|
Отправлено: 21:35, 16-01-2011 | #5 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Экран замерцал как gif | serj88rus | Непонятные проблемы с Железом | 0 | 01-12-2010 10:12 | |
как заставить просмотрщик фотографий в Win-7 воспроизводить gif формат | А_н_д_р_ей | Хочу все знать | 2 | 12-02-2010 20:55 | |
Антивирусы - [решено] Как лечить этот вирус foto18.gif ? | AACC | Лечение систем от вредоносных программ | 15 | 17-09-2009 08:37 | |
[решено] Как сделать автопрокрутку в конец List-box? | Twix1124 | AutoIt | 1 | 28-05-2009 23:55 | |
как перевести avi(фрагмент) в gif малой емкости? | illusionmgs | Хочу все знать | 5 | 16-10-2008 03:20 |
|