Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/64: Рейтинг темы: голосов - 64, средняя оценка - 4.61
21 / 21 / 1
Регистрация: 26.03.2012
Сообщений: 157

Открытие картинки через openFileDialog

16.12.2012, 00:01. Показов 13084. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер, как можно реализовать открытие картинки, через openFileDialog в Panel???

Вот так не получается, выдает ошибку
C#
1
this.panel1 = new Panel(openFileDialog1.OpenFile());
C#
1
2
3
4
5
6
7
8
penFileDialog openFileDialog1 = new OpenFileDialog();
            openFileDialog1.Filter = "Открыть картинку|*.jpg";
           
             if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
             {
 
                 this.panel1 = new Panel(openFileDialog1.OpenFile());
             }
Помогите)

Добавлено через 4 часа 2 минуты
Подскажите пожалуйста, нужно очень..
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.12.2012, 00:01
Ответы с готовыми решениями:

Открытие картинки через OpenFileDialog и ее отображение в PictureBox
Добрый вечер!!! У меня возник следующий вопрос: в общем, в моей программе необходимо, чтобы при нажатии кнопки "Открыть"...

Непосредственное открытие файлов через OpenFileDialog
private void найтиФайлыИПапкиToolStripMenuItem_Click(object sender, EventArgs e) { OpenFileDialog fd = new...

Открытие картинки через меню
Здравствуйте, у меня такой вопрос. Нужно создать многоуровневое меню в windows forms, и далее при выборе определенного пункта открывалась...

19
Почетный модератор
 Аватар для Памирыч
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
16.12.2012, 00:27
C#
1
this.panel1 = new Panel(openFileDialog1.OpenFile());
Тут что-то вообще непонятное.

Попробуйте так:
C#
1
this.panel1.BackgroundImage = Image.FromFile(openFileDialog1.FileName);
0
21 / 21 / 1
Регистрация: 26.03.2012
Сообщений: 157
16.12.2012, 09:26  [ТС]
Памирыч, он открывает, но делает множество клонов! Как сделать, чтобы этого не было?
0
Футболист
 Аватар для Goal
533 / 435 / 142
Регистрация: 31.10.2011
Сообщений: 1,010
16.12.2012, 09:40
Доброе утро, я не экстрасенс, но попробуйте задать свойство для panel1 - BackgroundImageLayout
C#
1
this.panel1.BackgroundImageLayout = ImageLayout.Stretch;
0
21 / 21 / 1
Регистрация: 26.03.2012
Сообщений: 157
16.12.2012, 10:02  [ТС]
Goal, а так он вообще не открывает картинку) я чуть-чуть переделал и картинку нужно открывать в picturebox, как можно сделать это?

Добавлено через 4 минуты
Пытаюсь вот так сохранить, но выдает ошибку: не найдена ссылка на объект:
C#
1
2
3
4
5
6
Bitmap bmpSave = (Bitmap)pictureBox1.Image;
            SaveFileDialog sfd = new SaveFileDialog();
            sfd.DefaultExt = "bmp";
            sfd.Filter = "Image files (*.bmp)|*.bmp|All files (*.*)|*.*";
            if (sfd.ShowDialog() == DialogResult.OK)
                bmpSave.Save(sfd.FileName, ImageFormat.Bmp);
В чем тут ошибочка???
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
17.12.2012, 10:07
На какой строке ошибка?

PS. Зачем вы приводите pictureBox1.Image к типу Bitmap?
0
21 / 21 / 1
Регистрация: 26.03.2012
Сообщений: 157
17.12.2012, 13:59  [ТС]
просто вначале была просто panel поэтому bitmap.. а как сделать сохранение piturebox??
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
17.12.2012, 14:29
У вас, вроде правильно, написано.
На какой строке ошибка?
0
21 / 21 / 1
Регистрация: 26.03.2012
Сообщений: 157
17.12.2012, 14:33  [ТС]
вот на эту:
C#
1
bmpSave.Save(sfd.FileName, ImageFormat.Bmp);
Говорит, что в экземпляре класса нет ссылки на объект, в чем проблема??
0
 Аватар для kesean
292 / 291 / 108
Регистрация: 04.09.2010
Сообщений: 638
17.12.2012, 14:40
А в pictureBox1 есть ли Image? Если нет - то bmpSave==null, отсюда и ошибка.
0
21 / 21 / 1
Регистрация: 26.03.2012
Сообщений: 157
17.12.2012, 14:41  [ТС]
тогда, что мне в коде поменять??
0
 Аватар для kesean
292 / 291 / 108
Регистрация: 04.09.2010
Сообщений: 638
17.12.2012, 14:44
Попробуй еще так:
C#
1
Bitmap bmpSave = new Bitmap(pictureBox1.Image);
Добавлено через 50 секунд
Цитата Сообщение от Aleks Nice Посмотреть сообщение
тогда, что мне в коде поменять??
C#
1
if (bmpSave==null)return;
0
21 / 21 / 1
Регистрация: 26.03.2012
Сообщений: 157
17.12.2012, 14:47  [ТС]
нет, ни ничего из этого не помогло мне(( нет другого способа сохранить картинку через savefiledialog??
0
 Аватар для kesean
292 / 291 / 108
Регистрация: 04.09.2010
Сообщений: 638
17.12.2012, 16:36
Давайте по порядку
Цитата Сообщение от Aleks Nice Посмотреть сообщение
картинку нужно открывать в picturebox, как можно сделать это?
C#
1
pictureBox1.Image=Image.FromFile(openFileDialog1.FileName);
Цитата Сообщение от Aleks Nice Посмотреть сообщение
Пытаюсь вот так сохранить, но выдает ошибку:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    if(pictureBox1.Image==null)
    {
        MessageBox.Show("Картинка не задана!!!!!!!!!!");
        return;
    }
    Bitmap bmpSave = new Bitmap(pictureBox1.Image);
    if(bmpSave != null)
    {
        SaveFileDialog sfd = new SaveFileDialog();
        sfd.DefaultExt = "bmp";
        sfd.Filter = "Image files (*.bmp)|*.bmp|All files (*.*)|*.*";
        if (sfd.ShowDialog() == DialogResult.OK)
            bmpSave.Save(sfd.FileName, ImageFormat.Bmp);
    }
0
21 / 21 / 1
Регистрация: 26.03.2012
Сообщений: 157
17.12.2012, 16:55  [ТС]
Все равно выдает ошибку((
Вначале при сохранении говорит что picturebox пуст, а после при сохраанении говорит, что не найденна ссылка на объект!

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    if(pictureBox1.Image==null)
    {
        MessageBox.Show("Картинка не задана!!!!!!!!!!");
        return;
    }
    Bitmap bmpSave = new Bitmap(pictureBox1.Image);
    if(bmpSave != null)
    {
        SaveFileDialog sfd = new SaveFileDialog();
        sfd.DefaultExt = "bmp";
        sfd.Filter = "Image files (*.bmp)|*.bmp|All files (*.*)|*.*";
        if (sfd.ShowDialog() == DialogResult.OK)
            bmpSave.Save(sfd.FileName, ImageFormat.Bmp);
    }
[/QUOTE]
0
 Аватар для kesean
292 / 291 / 108
Регистрация: 04.09.2010
Сообщений: 638
17.12.2012, 19:48
Цитата Сообщение от Aleks Nice Посмотреть сообщение
Вначале при сохранении говорит что picturebox пуст, а после при сохраанении говорит...
Не может он после ничего "говорить". Выполнение процедуры прервется. Приведенный код должен работать корректно. Что-то в другом. Выкладывайте полностью процедуры загрузки и сохранения изображений.
0
21 / 21 / 1
Регистрация: 26.03.2012
Сообщений: 157
17.12.2012, 19:57  [ТС]
Процедуры загрузки нет, так как пользователь сам рисует в picturebox. А само сохранение вот:
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
34
35
36
37
38
39
40
41
42
43
 Bitmap bmpSave = (Bitmap)pictureBox1.Image;
            SaveFileDialog savedialog = new SaveFileDialog();
            savedialog.Title = "Сохранить картинку как ...";
            savedialog.DefaultExt = "bmp";
            savedialog.OverwritePrompt = true;
            savedialog.CheckPathExists = true;
            savedialog.Filter =
                "Bitmap File(*.bmp)|*.bmp|" +
                "GIF File(*.gif)|*.gif|" +
                "JPEG File(*.jpg)|*.jpg|" +
                "TIF File(*.tif)|*.tif|" +
                "PNG File(*.png)|*.png";
            savedialog.ShowHelp = true;
            // If selected, save
            if (savedialog.ShowDialog() == DialogResult.OK)
            {
                // Get the user-selected file name
                string fileName = savedialog.FileName;
                // Get the extension
                string strFilExtn =
                    fileName.Remove(0, fileName.Length - 3);
                // Save file
                switch (strFilExtn)
                {
                    case "bmp":
                        bmpSave.Save(fileName, System.Drawing.Imaging.ImageFormat.Bmp);
                        break;
                    case "jpg":
                        bmpSave.Save(fileName, System.Drawing.Imaging.ImageFormat.Jpeg);
                        break;
                    case "gif":
                        bmpSave.Save(fileName, System.Drawing.Imaging.ImageFormat.Gif);
                        break;
                    case "tif":
                        bmpSave.Save(fileName, System.Drawing.Imaging.ImageFormat.Tiff);
                        break;
                    case "png":
                        bmpSave.Save(fileName, System.Drawing.Imaging.ImageFormat.Png);
                        break;
                    default:
                        break;
                }
            }
и он ругается при сохранение, на любой case (при выборе формата изображения) и говорит, что не найдена ссылка на объект!!! В чем проблема?
0
 Аватар для kesean
292 / 291 / 108
Регистрация: 04.09.2010
Сообщений: 638
17.12.2012, 20:03
Цитата Сообщение от Aleks Nice Посмотреть сообщение
В чем проблема?
Прикалываетесь что-ли? О чем тут я разорялся? Что общего этого кода с кодом показанным в предыдущем посте? Здесь я не вижу ни одной проверки bitmap'a на null.

Не по теме:

Далее я пас.

0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
17.12.2012, 20:03
Отладчиком пройдите до точки, где бросается исключение. И посмотрите чему равны используемые там переменные.
Кстати, пересоберите solution полностью, для уверенности, что у вас последняя версия запускается.
0
21 / 21 / 1
Регистрация: 26.03.2012
Сообщений: 157
17.12.2012, 20:09  [ТС]
с solution все норм, последняя версия запускается.. Я прошелся отладчиком и мне ничего не ясно в нем(( как быть?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.12.2012, 20:09
Помогаю со студенческими работами здесь

Долгое открытие openFileDialog
столкнулся с проблемой - нереально долгое открытие openFileDialog! Заспустив программу и впервые вызвав openFileDialog из программы, само...

Настройка OpenFileDialog на открытие только изображений
Привет! Имеется: элемент OpenFileDialog Требуется: настроить его таким образом, чтобы по умолчанию он предлагал открывать файлы...

Установка BackgroundImage панели через OpenFileDialog
Мне нужно что бы открытой картинкой в панели заливался фон. Метод открытия изображения public Image ImageOpen(string filename) ...

Добавить выбор файла через OpenFileDialog
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using...

Выбор файлов через OpenFileDialog и их копирование
Здравствуйте. Намекните пожалуйста в какую сторону копать. Не могу реализовать копирование нескольких файлов, причем эти файлы нужно...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru