Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 22.04.2016
Сообщений: 42

Image.Source присвоить Bitmap

13.12.2018, 11:13. Показов 2263. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Подскажите пожалуйста как в WPF Image.Source присвоить Bitmap ?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.12.2018, 11:13
Ответы с готовыми решениями:

Почему If не работает для System.Drawing.Bitmap(PictureBox.Image, вместе с переменными типа Object)
В моей программе для сохранения "базы" ТРЕБУЕТСЯ проверка изображения в PictureBox'е (на My.Resourses."") Но вроде все...

Image.Source
Всем привет! Срочно!!! Нужно засунуть картинку в Image с C#. Мой код: browserImage.Source = new BitmapImage(new...

Манипуляции с Image.Source
Создаю новый компонент, наследуется от System.Windows.Controls.Image. В нём в виде списка элементов System.Windows.Controls.Image хранятся...

7
Лень — мое второе и
 Аватар для Orlangur
3228 / 2416 / 687
Регистрация: 28.11.2014
Сообщений: 3,601
Записей в блоге: 3
13.12.2018, 11:39
DimaZhavoronkov, Именно Bitmap?
VB.NET
1
2
3
4
  Private Sub button1_Click(sender As Object, e As RoutedEventArgs) Handles button1.Click
        Dim btm As New Bitmap("C:\Users\administrator\Pictures\Arts\dr.jpg")
        image_1.Source = BitmapToImage(btm)
    End Sub
VB.NET
1
2
3
4
5
6
7
8
9
10
    Function BitmapToImage(ByVal btm As Bitmap) As BitmapImage
        Dim ms As New MemoryStream()
        CType(btm, Bitmap).Save(ms, Imaging.ImageFormat.Bmp)
        Dim image As New BitmapImage()
        image.BeginInit()
        ms.Seek(0, SeekOrigin.Begin)
        image.StreamSource = ms
        image.EndInit()
        Return image
    End Function
0
0 / 0 / 0
Регистрация: 22.04.2016
Сообщений: 42
13.12.2018, 12:05  [ТС]
У меня в результате чтения изображения с web-камеры получается последовательность кадров в Bitmap

VB.NET
1
 Dim Bit_Map As System.Drawing.Bitmap = CType(e.Frame.Clone, System.Drawing.Bitmap)
Для работы с Web камерой использовал библиотеки AForge

Добавлено через 20 минут
Доже при помощи данной функции кадры не выводятся в Image
0
Лень — мое второе и
 Аватар для Orlangur
3228 / 2416 / 687
Регистрация: 28.11.2014
Сообщений: 3,601
Записей в блоге: 3
13.12.2018, 12:06
DimaZhavoronkov, покажите как используете, в примере все работает
0
0 / 0 / 0
Регистрация: 22.04.2016
Сообщений: 42
13.12.2018, 12:10  [ТС]
VB.NET
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
34
35
36
37
38
39
40
41
Class MainWindow
    Function BitmapToImage(ByVal btm As Bitmap) As ImageSource
        Dim ms As New MemoryStream()
        CType(btm, Bitmap).Save(ms, Imaging.ImageFormat.Bmp)
        Dim image As New BitmapImage()
        image.BeginInit()
        ms.Seek(0, SeekOrigin.Begin)
        image.StreamSource = ms
        image.EndInit()
        Return image
    End Function
 
    Private VideoDevices As FilterInfoCollection, VideoSourse As VideoCaptureDevice
    'кнопка старта 
    Private Sub button_Click(sender As Object, e As RoutedEventArgs) Handles button.Click
        VideoSourse = New VideoCaptureDevice(VideoDevices(ListBox_Devices.SelectedIndex).MonikerString)
        AddHandler VideoSourse.NewFrame, AddressOf NewFrame
        VideoSourse.Start()
    End Sub
 
    '
    Private Sub NewFrame(sender As Object, e As NewFrameEventArgs)
        Dim B As Bitmap = e.Frame.Clone
        image.Source = BitmapToImage(B)
    End Sub
 
    Private Sub button_stop_Click(sender As Object, e As RoutedEventArgs) Handles button_stop.Click
        VideoSourse.Stop()
    End Sub
 
    'Загрузка формы
    Private Sub MainWindow_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
        VideoDevices = New FilterInfoCollection(FilterCategory.VideoInputDevice)
        If VideoDevices.Count > 0 Then
            For Each x As FilterInfo In VideoDevices
                ListBox_Devices.Items.Add(x.Name)
            Next x
            ListBox_Devices.SelectedIndex = 0
        End If
    End Sub
End Class
0
Лень — мое второе и
 Аватар для Orlangur
3228 / 2416 / 687
Регистрация: 28.11.2014
Сообщений: 3,601
Записей в блоге: 3
13.12.2018, 12:23
DimaZhavoronkov, пробуйте так
VB.NET
1
2
3
4
5
6
7
    Private Sub NewFrame(sender As Object, e As NewFrameEventArgs)
        Dim B As Bitmap = e.Frame.Clone
        Dispatcher.BeginInvoke(New ThreadStart(Sub()
                                                   Image.Source = BitmapToImage(B)
                                               End Sub))
 
    End Sub
и в BitmapToImage поменяйте As ImageSource на As BitmapImage
0
0 / 0 / 0
Регистрация: 22.04.2016
Сообщений: 42
13.12.2018, 12:30  [ТС]
Заработало ))) Спасибо большое. А можешь объяснить немного в чем проблема была ?

Добавлено через 1 минуту
Не хотела работать в одном и том же потоке с приложением ?
0
Лень — мое второе и
 Аватар для Orlangur
3228 / 2416 / 687
Регистрация: 28.11.2014
Сообщений: 3,601
Записей в блоге: 3
13.12.2018, 12:59
DimaZhavoronkov, если честно, то не разбирался, просто погуглил и почитал Возможно, в данном случае это и не играет роли, а вот тип возвращаемых данных функцией сделал свое дело. Лучше в итоге переделать как в примере по ссылке
То есть как-то так
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
   Private Sub Cam_NewFrame(ByVal sender As Object, ByVal e As NewFrameEventArgs)
        Try
            Dim img As System.Drawing.Image = DirectCast(e.Frame.Clone(), Bitmap)
            Dim ms As New MemoryStream()
            img.Save(ms, ImageFormat.Bmp)
            ms.Seek(0, SeekOrigin.Begin)
            Dim bi As New BitmapImage()
            bi.BeginInit()
            bi.StreamSource = ms
            bi.EndInit()
            bi.Freeze()
            Dispatcher.BeginInvoke(New ThreadStart(Sub()
                                                       Image.Source = bi
                                                   End Sub))
        Catch ex As Exception
        End Try
    End Sub
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.12.2018, 12:59
Помогаю со студенческими работами здесь

Как присвоить Source в WPF?
Доброе время суток. Подскажите пожалуйста, в Windows Forms можно присвоить Source к PictureBox таким образом: img.Source =...

Разные картинки в Image.Source
Я делаю приложение с WPF. В форме есть кнопка для запуска exe файла, который меняет фотографию photo.jpg и выводит это фото в image. На...

Привязка string к Image.Source
Уважаемые знатоки. Практически первая работа с WPF. Не могу сделать привязку метода из c# к image из XAML и вторая проблема - не понятно...

Image source binding и INotifyPropertyChanged
Пусть имеется изображение <Image x:Name="p1g" Source="{Binding player1.PField.Goalkeeper, Converter={Binding ImageConverter}}"> ...

Абсолютная адресация для Image.Source
Уважаемые Гуру! Код xaml: <Image Source="{Binding itemImage, Mode=TwoWay}"/> Во ViewModel код с относительной адресацией itemImage...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru