Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
116 / 116 / 42
Регистрация: 27.02.2013
Сообщений: 899
1

Image Source не меняется после добавления изображения

26.09.2014, 08:48. Показов 3452. Ответов 23
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый всем день. Возникла проблема в отображении в image. После загрузки картинки в image, картинка не меняется, при выборе другого объекта. Как решить эту проблему, подскажите пожалуйста??????????

Таким способом я добавляю изображение
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
OpenFileDialog openFileDialog1 = new OpenFileDialog();
            openFileDialog1.InitialDirectory = @"D:\";// начальная директория
            openFileDialog1.Filter = "All Embroidery Files|*.bmp;*.gif;*.jpeg;*.jpg;" +
                 "*.fif;*.fiff;*.png;*.wmf;*.emf" +
                 "|Windows Bitmap (*.bmp)|*.bmp" +
                 "|JPEG File Interchange Format (*.jpg)|*.jpg;*.jpeg" +
                 "|Graphics Interchange Format (*.gif)|*.gif" +
                 "|Portable Network Graphics (*.png)|*.png" +
                 "|Tag Embroidery File Format (*.tif)|*.tif;*.tiff";
            if (openFileDialog1.ShowDialog() == true)
            {
                System.Drawing.Image im = System.Drawing.Image.FromFile(openFileDialog1.FileName);
                MemoryStream memoryStream = new MemoryStream(); // создаем поток для памяти
                im.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Jpeg); // выбираем формат хранения картинки
                data = memoryStream.ToArray(); // записываем из памяти в нашу переменную
 
                BitmapImage bm1 = new BitmapImage();// объект для хранения изображения
                bm1.BeginInit();// начинаем инициализацию изображения
                bm1.UriSource = new Uri(openFileDialog1.FileName, UriKind.RelativeOrAbsolute);// помещаем выбранную картинку
                bm1.CacheOption = BitmapCacheOption.OnLoad;
                bm1.EndInit();
                pict.Source = bm1;// помещаем ее в Image
            }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.09.2014, 08:48
Ответы с готовыми решениями:

Асинхронная загрузка изображения через привязку к Image.Source
Есть у меня в форме объект Image: <Image Name="PART_imgProductImage" Stretch="Fill"...

Не меняется картинка image в форме, один раз меняется, потом нет
Не меняется картинка image в форме, один раз меняется, потом нет. Запускаю из другого потока,...

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

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

23
Эксперт .NET
4432 / 2092 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
26.09.2014, 23:37 2
Цитата Сообщение от blackstar Посмотреть сообщение
Как решить эту проблему, подскажите пожалуйста
А с чего ты вообще взял, что проблема в этом обрывке кода? Догадываешься, что надо сделать, чтобы такую проблему решить?
0
116 / 116 / 42
Регистрация: 27.02.2013
Сообщений: 899
27.09.2014, 11:59  [ТС] 3
Casper-SC, у меня больше нет так, такого кода к image. Я делаю binding из бд
Все работает нормально, пока не загружу новое изображение. Поэтому мне кажется может дело в загрузке этого изображения.
XML
1
<Image Width="200" Height="200" Stretch="UniformToFill" Source="{Binding Photo}" x:Name="pict"/>
Забивается Image.Source и не обновляется.. Хотя могу ошибаться, просто такие мысли. Прикрепил проект с этой проблемой.
Вложения
Тип файла: rar Тест.rar (100.2 Кб, 8 просмотров)
0
Эксперт .NET
4432 / 2092 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
27.09.2014, 14:03 4
Цитата Сообщение от blackstar Посмотреть сообщение
Все работает нормально, пока не загружу новое изображение. Поэтому мне кажется может дело в загрузке этого изображения.
Посидел 20 минут, так и не запустилась твоя прога.

Первый этап обработки исключения типа "System.BadImageFormatException" в System.Data.SQLite.dll

Дополнительные сведения: Была сделана попытка загрузить программу, имеющую неверный формат. (Исключение из HRESULT: 0x8007000B)
Поставил скл лайт 4.0, добавил библиотеку, всё равно падает. интроп не добавляется.

Добавлено через 6 минут
А, я 32 бит версию поставил

Добавлено через 2 минуты
64 версия тоже не пашет.
0
116 / 116 / 42
Регистрация: 27.02.2013
Сообщений: 899
27.09.2014, 23:17  [ТС] 5
Casper-SC, странно. Прикрепляю библиотеки, которые у меня спокойно работают. Попробуй их, пожалуйста.
Вложения
Тип файла: rar Библиотека.rar (258.0 Кб, 3 просмотров)
0
116 / 116 / 42
Регистрация: 27.02.2013
Сообщений: 899
27.09.2014, 23:23  [ТС] 6
Casper-SC, перезалил проект, с дебагом и не очищенном решением. Надеюсь поможет
Вложения
Тип файла: rar Прога.rar (753.8 Кб, 4 просмотров)
0
Эксперт .NET
4432 / 2092 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
28.09.2014, 11:33 7
Цитата Сообщение от blackstar Посмотреть сообщение
Casper-SC, у меня больше нет так, такого кода к image.
У тебя есть этот код в XAML, без него не ясно было в чём проблема.

Ты в создаёшь биндинг к выбранному элементу в листбоксе. А при выборе картинки ты затираешь биндинг и напрямую свойству Source присваиваешь изображение.

Добавлено через 3 минуты
Тут я вижу 2 варианта, как сделать можно. Можно добавлять в ObservableCollection и выбирать автоматом этот элемент в ListBox или сделать свойство Contact, к которому биндится текущий выбранный элемент ListBox как Mode=OneWayToSource и при загрузке изображения ты просто тому свойству присваиваешь новый контакт.
0
Эксперт .NET
4432 / 2092 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
28.09.2014, 14:29 8
Так как ты сделал ничего адекватного не получится. Зачем тебе вообще загружать картинку? С какой целью её загружать в Image? ты сначала объясни нормально чего ты хочешь добиться, а то ща костылей наделаем непонятно для чего именно таким способом. Держи, я переделал более-менее адекватно код, хотя ещё есть что доделать. На основе этого проекта буду дальше помогать, когда объяснишь суть задачи. Просто выбор контакта из списка и выбор зачем-то картинки в этот же Image как-то не вяжется. Я знаю как сделать, чтобы это нормально работало. Но вдруг тебе нужно совсем не это в итоге.
Вложения
Тип файла: zip ContactBD.zip (783.0 Кб, 4 просмотров)
0
116 / 116 / 42
Регистрация: 27.02.2013
Сообщений: 899
28.09.2014, 21:52  [ТС] 9
Casper-SC, мне просто нужно было обычное добавления изображения в бд. Загрузил картинку, в необходимый контакт и все. Все грузиться, просто потом после добавки изображения оно не меняется, приходится перезапускать прогу, для корректной работы. А то, что ты мне кинул, вообще чтото не отображает изображения((((
0
Эксперт .NET
4432 / 2092 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
28.09.2014, 21:57 10
На это я тебе уже ответил:
Цитата Сообщение от blackstar Посмотреть сообщение
Все грузиться, просто потом после добавки изображения оно не меняется, приходится перезапускать прогу
Цитата Сообщение от Casper-SC Посмотреть сообщение
Ты в создаёшь биндинг к выбранному элементу в листбоксе. А при выборе картинки ты затираешь биндинг и напрямую свойству Source присваиваешь изображение.
Добавлено через 10 секунд
У меня работает, что я тебе скинул.
0
116 / 116 / 42
Регистрация: 27.02.2013
Сообщений: 899
28.09.2014, 21:59  [ТС] 11
Casper-SC, а что я сделал неадекватного? вроде, нормальное подключение бд, в класс просто не засунул добавление и обновление бд. Как говорится делал как учили, но походу не сильно правильно
0
Эксперт .NET
4432 / 2092 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
28.09.2014, 21:59 12
Странно, но теперь и у меня не работает.
0
116 / 116 / 42
Регистрация: 27.02.2013
Сообщений: 899
28.09.2014, 22:01  [ТС] 13
при выборе, что-то не отображает ничего(на скрине)
Миниатюры
Image Source не меняется после добавления изображения  
0
Эксперт .NET
4432 / 2092 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
28.09.2014, 22:02 14
Обнови файл БД.
Цитата Сообщение от blackstar Посмотреть сообщение
при выборе, что-то не отображает ничего(на скрине)
Ща попробую разобраться.
0
Эксперт .NET
4432 / 2092 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
28.09.2014, 22:09 15
Так в БД нет картинок:
Миниатюры
Image Source не меняется после добавления изображения  
0
116 / 116 / 42
Регистрация: 27.02.2013
Сообщений: 899
28.09.2014, 22:10  [ТС] 16
Casper-SC, у меня отобразилось, после перезаливки бд. Но правда, изображения не добавляються в бд, при загрузки их((

Добавлено через 43 секунды
Casper-SC, у иванова есть) видно же, просто закодировано как-то
0
Эксперт .NET
4432 / 2092 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
28.09.2014, 22:11 17
Цитата Сообщение от blackstar Посмотреть сообщение
Casper-SC, у иванова есть) видно же, просто закодировано как-то
Так он и не выводится почему-то.
0
116 / 116 / 42
Регистрация: 27.02.2013
Сообщений: 899
28.09.2014, 22:13  [ТС] 18
Casper-SC, у меня вывелось, после перезаливки бд, говорю же. Просто удалил бд и обратно в debug вставил. Теперь, просто в бд не заноситься изображение с помощью кнопки Загрузить
0
Эксперт .NET
4432 / 2092 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
28.09.2014, 22:16 19
Всё, перезалил твою БД со старого проекта, всё отображается нормально, кроме первого контакта.

Добавлено через 32 секунды
Цитата Сообщение от blackstar Посмотреть сообщение
Casper-SC, у меня вывелось, после перезаливки бд, говорю же. Просто удалил бд и обратно в debug вставил. Теперь, просто в бд не заноситься изображение с помощью кнопки Загрузить
Так это и не сделано, я же говорил, что не знал, как ты там хочешь сделать. Ща помогу. Жди.
0
116 / 116 / 42
Регистрация: 27.02.2013
Сообщений: 899
28.09.2014, 22:17  [ТС] 20
Casper-SC, спасибо, жду)
0
28.09.2014, 22:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.09.2014, 22:17
Помогаю со студенческими работами здесь

После добавления второго класса БД срабатывает исключение. Source not found
Было приложение с одним классом БД. всё работало. Затем добавил второй класс БД. после этого в...

Image.Source присвоить Bitmap
Добрый день. Подскажите пожалуйста как в WPF Image.Source присвоить Bitmap ?

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

Image.Source отпустить показанный файл
Добрый день. Суть заключается в том что создаю изображение из потока(File.Create()), поток ясным...


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

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