Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Видеоряд, Смена изображений 
:(
    Опции темы
WERITAS
Дата 19.2.2010, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


********
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 2.5.2005
Где: Москва

Репутация: нет
Всего: 5



Добрый день! Как можно сделать видеоряд из изображений, хранящихся в памяти. Допустим, у меня есть коллекция картинок типа Images[] и я хочу её отображать как видео на форме. Как это можно сделать с pictureBox, чтобы было без тормозов?
Хочется как-нибудь так:
Код

    public delegate void dlgShow();

    public partial class Form1 : Form
    {
        private Image[] images;


        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            images = new Image[78];
            for (int i = 1; i < 78; i++)
                images[i] = Image.FromFile("C:/test/" + i + ".jpg");
        }

        private void Show()
        {
            int i = 0;
            while(true)
            {
                if (i > 77)
                    i = 0;

                pictureBox1.Image = images[i];
                //pictureBox1.Image.Dispose();
                i++;
            }
        }

        private void Form1_Shown(object sender, EventArgs e)
        {
            pictureBox1.Invoke(new dlgShow(Show));
            //Thread thr = new Thread(new ThreadStart(new dlgShow(Show)));
            //thr.Start();
            
            
        }
    }



Это сообщение отредактировал(а) WERITAS - 19.2.2010, 21:12


--------------------
Арт-менеджер клуба, разрешивший концерт Алексея Глызина, уволен с формулировкой "Мудак"
PM MAIL   Вверх
Pilger
Дата 19.2.2010, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 257
Регистрация: 10.5.2008
Где: Германия

Репутация: нет
Всего: нет



Как видео? Ничего себе. Может быть использовать таймер? Таймер выполняет определенный код в каком то временном интервале. Если туда ввести код, который должен выполняться скажем каждые x миллисекунд. Не знаю зачем такое надо, но как вариант.


--------------------
Ein Leben nach der Schleife existiert, nur wenn die Schleife terminiert.
PM MAIL ICQ   Вверх
WERITAS
Дата 19.2.2010, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


********
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 2.5.2005
Где: Москва

Репутация: нет
Всего: 5



У меня ip-камера передаёт jpeg-и, я их принимаю, а потом надо как-то их отобразить. Вот как? Пока не придумал...

Пока что вот как сделал:
Код

public delegate void dlgShow(object sender);

    public partial class Form1 : Form
    {
        private Image[] images;


        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            images = new Image[78];
            for (int i = 1; i < 78; i++)
                images[i] = Image.FromFile("C:/test/" + i + ".jpg");
        }

        private void Show(object sender)
        {
            int i = 0;
            while(true)
            {
                if (i > 77)
                    i = 0;

                pictureBox1.Image = images[i];
                //pictureBox1.Image.Dispose();
                i++;
                Thread.Sleep(1000);
            }
        }

        private void Form1_Shown(object sender, EventArgs e)
        {
            Thread thr = new Thread(new ParameterizedThreadStart(new dlgShow(Show)));
            thr.Start(pictureBox1);
            
        }
    }


Эхх, подзабыл я как с потоками работать  smile 

Это сообщение отредактировал(а) WERITAS - 19.2.2010, 21:26


--------------------
Арт-менеджер клуба, разрешивший концерт Алексея Глызина, уволен с формулировкой "Мудак"
PM MAIL   Вверх
Pilger
Дата 19.2.2010, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 257
Регистрация: 10.5.2008
Где: Германия

Репутация: нет
Всего: нет



Код

Thread.Sleep(1000);


Если тебе надо такое, то поставь Timer и задай ему интервал 1000. Потом делай, как я написал ранее. Ничего другого посоветовать не могу. Жди спецов^^.

Это сообщение отредактировал(а) Pilger - 19.2.2010, 21:34


--------------------
Ein Leben nach der Schleife existiert, nur wenn die Schleife terminiert.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0649 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.