Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 2
Регистрация: 25.08.2014
Сообщений: 76
1

Сделать снимок через промежуток времени Afoge.NET

24.07.2015, 13:30. Показов 784. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть проект в WPF.
Как сделать четыре снимка, при нажатии на кнопку, через каждые четыре секунды, и поместить их в разные image ?
Сделать снимок через промежуток времени Afoge.NET

Camera.rar

То есть, нажал на кнопку, прошло четыре секунды, первый снимок еще четыре секунды 2-ой... 4сек четвертый снимок.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.07.2015, 13:30
Ответы с готовыми решениями:

Как сделать так чтобы диалоговое окно закрывалось через определенный промежуток времени?
Как сделать так что бы диалоговое окно закрывалось через определенный промежуток времени ? К...

Как сделать так чтобы картинка могла меняться через определенный промежуток времени?
как сделать так чтобы картинка могла меняться через определенный промежуток времени на C# Windows...

Действие через определенный промежуток времени
Как сделать таймер по истечению действия которго выполнялось какое-то событие,при том между началом...

Выполнение действия через промежуток времени
Как сделать так, чтобы при нажатии на кнопку(button1) выполнилось поочередно, с промежутком во...

13
0 / 0 / 2
Регистрация: 25.08.2014
Сообщений: 76
24.07.2015, 20:00  [ТС] 2
В WindowsForm сделать снимок можно так:
C#
1
pictureBox2.Image = (Bitmap)pictureBox1.Image.Clone();
А как такое же сделать в WPF с Image?
0
0 / 0 / 2
Регистрация: 25.08.2014
Сообщений: 76
25.07.2015, 21:33  [ТС] 3
Подсказали как заменить:
Цитата Сообщение от Endrei Посмотреть сообщение
C#
1
pictureBox2.Image = (Bitmap)pictureBox1.Image.Clone();
Вот так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
BitmapSource source = frameHolder.Source as BitmapSource;
 
                int stride = source.PixelWidth * (source.Format.BitsPerPixel / 8);
 
                byte[] data = new byte[stride * source.PixelHeight];
 
                source.CopyPixels(data, stride, 0);
    
                WriteableBitmap target = new WriteableBitmap(
                  source.PixelWidth,
                  source.PixelHeight,
                  source.DpiX, source.DpiY,
                  source.Format, null);
 
                target.WritePixels(
                  new Int32Rect(0, 0, source.PixelWidth, source.PixelHeight),
                  data, stride, 0);
 
 
                image2.Source = target;
Подскажите, как этот код выполнить, четыре раза, с промежутком в 4-е секунды?
0
87 / 87 / 36
Регистрация: 27.11.2011
Сообщений: 713
26.07.2015, 11:44 4
Endrei,
C#
1
2
3
           Timer t=new Timer(1000);
            t.Elapsed += t_Elapsed;
            t.Start();
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 static void t_Elapsed(object sender, ElapsedEventArgs e)
        {
            counter++;
            if (counter<=4)
            {
                BitmapSource source = frameHolder.Source as BitmapSource;
 
                int stride = source.PixelWidth * (source.Format.BitsPerPixel / 8);
 
                byte[] data = new byte[stride * source.PixelHeight];
 
 
                source.CopyPixels(data, stride, 0);
    
                WriteableBitmap target = new WriteableBitmap(
                  source.PixelWidth,
                  source.PixelHeight,
                  source.DpiX, source.DpiY,
                  source.Format, null);
 
                target.WritePixels(
                  new Int32Rect(0, 0, source.PixelWidth, source.PixelHeight),
                  data, stride, 0);
 
 
                image2.Source = target;
            }
            else
            {
                (sender as Timer).Stop();
            }
        }
Добавлено через 3 минуты
у таймера в конструкторе сами время установите в милисекундах
1
0 / 0 / 2
Регистрация: 25.08.2014
Сообщений: 76
26.07.2015, 13:26  [ТС] 5
jecus, я так понял все четыре фотографии, с промежутком 4-секунды, будут создаваться в image2.
А я бы хотел, чтобы они создавались: image2, image3, image4, image5 по очереди.
Цитата Сообщение от Endrei Посмотреть сообщение
То есть, нажал на кнопку, прошло четыре секунды, первый снимок еще четыре секунды 2-ой... 4сек четвертый снимок.
Camera.rar
0
0 / 0 / 2
Регистрация: 25.08.2014
Сообщений: 76
27.07.2015, 00:31  [ТС] 6
Может через многопоточность можно сделать?
Но как это реализовать не знаю.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
private void Button_Click_1(object sender, RoutedEventArgs e)
            {
                BitmapSource source = frameHolder.Source as BitmapSource;
 
                int stride = source.PixelWidth * (source.Format.BitsPerPixel / 8);
 
                byte[] data = new byte[stride * source.PixelHeight];
 
 
                source.CopyPixels(data, stride, 0);
 
                WriteableBitmap target = new WriteableBitmap(
                  source.PixelWidth,
                  source.PixelHeight,
                  source.DpiX, source.DpiY,
                  source.Format, null);
 
                target.WritePixels(
                  new Int32Rect(0, 0, source.PixelWidth, source.PixelHeight),
                  data, stride, 0);
 
                Thread.Sleep(40000);
                image2.Source = target;
 
                Thread.Sleep(40000);
                image3.Source = target;
 
                Thread.Sleep(40000);
                image4.Source = target;
 
                Thread.Sleep(40000);
                image5.Source = target;
            }
Добавил еще
C#
1
using System.Threading;
То есть, еще нужна функция запуска в потоке. Подскажите как ее реализовать.
0
87 / 87 / 36
Регистрация: 27.11.2011
Сообщений: 713
27.07.2015, 07:53 7
Endrei, а смысл многопоточности тут?
0
0 / 0 / 2
Регистрация: 25.08.2014
Сообщений: 76
27.07.2015, 10:21  [ТС] 8
jecus, я не знаю как по другому сделать. С таймером тоже не получилось.

C#
1
2
3
4
5
6
7
8
 
                image2.Source = target;
 
                image3.Source = target;
 
                image4.Source = target;
 
                image5.Source = target;
0
87 / 87 / 36
Регистрация: 27.11.2011
Сообщений: 713
27.07.2015, 10:28 9
Endrei, прилепи проект вечером дома буду покажу как
0
0 / 0 / 2
Регистрация: 25.08.2014
Сообщений: 76
27.07.2015, 10:54  [ТС] 10
jecus, спасибо.
Camera.rar
0
87 / 87 / 36
Регистрация: 27.11.2011
Сообщений: 713
27.07.2015, 19:44 11
Endrei, не запускается твое приложение у меня
0
0 / 0 / 2
Регистрация: 25.08.2014
Сообщений: 76
27.07.2015, 20:00  [ТС] 12
jecus, а веб-камера подключена?
0
87 / 87 / 36
Регистрация: 27.11.2011
Сообщений: 713
28.07.2015, 12:33 13
Endrei, на нотнике да
0
0 / 0 / 2
Регистрация: 25.08.2014
Сообщений: 76
28.07.2015, 17:23  [ТС] 14
jecus, может просто пример кода приведете?
0
28.07.2015, 17:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.07.2015, 17:23
Помогаю со студенческими работами здесь

Выполнение действия через промежуток времени
Как выполнять запрос webBrowser1.Navigate(&quot;https://www.youtube.com&quot;); Через каждые две...

Открытие формы через промежуток времени
Здравствуйте!Мне нужно реализовать на винформс следующее:когда открываешь программу,идет обратный...

Закрытие MessageBox через промежуток времени
Как сделать чтобы MessageBox закрылся за некоторое время ? + Нужно убрать кнопку закрыть и крестик....

Архивирование записей из БД, через определённый промежуток времени. Как лучше сделать?
Предположим есть БД, в которую сервер сливает данные из большого кол-ва однотипных источников....

Возможно ли сделать так, чтобы база сама очищалась через определенный промежуток времени
Скажите комрады, возможно ли задать такие параметры, чтобы база опустошалась через определенный...

Возможно ли сделать так, чтобы кнопки появлялись и исчезали через определенный промежуток времени
Добрый день! Подскажите пожалуйста,возможно ли сделать так,чтобы кнопки появлялись и исчезали...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru