9 / 9 / 5
Регистрация: 24.03.2014
Сообщений: 313
1

Сохранение данных об изображениях в отдельный файл

17.06.2014, 20:08. Показов 1474. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток! Пишу текстовый редактор. Необходимо чтобы при нажатии на кнопки, изображения менялись, а после перезапуска программы выбранные изображения сохранялись и выводились на экран. Желательно чтобы сохранялись их пути(места где они лежат на диске(строка))в отдельный файл на диск. Заранее спасибо!!!

Вот наброски смены этих изображений:
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
private void button35_Click(object sender, EventArgs e)
        {
            pictureBox2.Image = new Bitmap(@"C:\JEANS\Resoorce\BG\01.jpg");
        }
 
        private void button36_Click(object sender, EventArgs e)
        {
            pictureBox2.Image = new Bitmap(@"C:\JEANS\Resoorce\BG\02.jpg");
        }
 
        private void button33_Click(object sender, EventArgs e)
        {
            pictureBox2.Image = new Bitmap(@"C:\JEANS\Resoorce\BG\welcome.jpg");
        }
 
        private void button37_Click(object sender, EventArgs e)
        {
            pictureBox2.Image = new Bitmap(@"C:\JEANS\Resoorce\BG\03.jpg");
        }
 
        private void button38_Click(object sender, EventArgs e)
        {
            pictureBox2.Image = new Bitmap(@"C:\JEANS\Resoorce\BG\My.jpg");
        }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.06.2014, 20:08
Ответы с готовыми решениями:

Парсинг базы данных и сохранение результата в отдельный файл
Всем привет! Помогите пожалуйста. Есть БД (mysql), нужно спарсить из нее одну таблицу, и по...

сохранение в отдельный файл *.dbf
Привет всем !!! У меня такая проблема подключаю базу Foxpro в Delphi делаю выборку по полю ...

Сохранение изображения в отдельный файл
Всем доброго времени суток. Написал небольшое приложение, суть в приложении в следующим......

Сохранение слоёв в фотошопе в отдельный файл
Прошу прощения за нубский вопрос, но ответ найти не смог. Как в psd макете слои сохранять? Я делаю...

17
Заблокирован
17.06.2014, 21:11 2
Лучший ответ Сообщение было отмечено slenderface как решение

Решение

slenderface,я не совсем понял, что вы хотите сделать.
Создайте поле, где храните пути к изображению. При закрытии формы записывайте в файле.
C#
1
2
3
4
5
        List<string> pathlist = new List<string>();
        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            File.WriteAllLines("path.txt", pathlist, Encoding.Default);
        }
Чтение происходит аналогичным образом. Если опишите задачу более понятно, возможно смогу помочь больше.
1
9 / 9 / 5
Регистрация: 24.03.2014
Сообщений: 313
17.06.2014, 21:26  [ТС] 3
Ev_Hyper, Мне необходимо чтобы изображение которое выбрал пользователь нажав на кнопку, после перезапуска программы становилось не по умолчанию, а тем, которым его выбрал пользователь из списка(списка кнопок) во время прошлого сеанса.
Исходник выбора этого изображения находится выше, но делать так чтобы оно сохранялось я не умею. Помогите пожалуста!
0
3 / 3 / 1
Регистрация: 01.01.2014
Сообщений: 17
17.06.2014, 23:43 4
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
   Stream myStream ;
     SaveFileDialog saveFileDialog1 = new SaveFileDialog();
 
     saveFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"  ;
     saveFileDialog1.FilterIndex = 2 ;
     saveFileDialog1.RestoreDirectory = true ;
 
     if(saveFileDialog1.ShowDialog() == DialogResult.OK)
     {
         if((myStream = saveFileDialog1.OpenFile()) != null)
         {
             // Code to write the stream goes here.
             myStream.Close();
             Bitmap.Save(@"E:\имя.jpg");
             //или так
                 pictureBox1.Image.Save(@"E:\имя.jpg");
         }
     }
Но лучше юзать bitmap
1
Заблокирован
18.06.2014, 00:09 5
slenderface, если изображение одно имеет смысл хранить в настройках программы. Если много - то, конечно, стоит записывать пути в файл. Набросок кода не совсем понятен. Если обработка клика для каждой кнопки нужна только для того, чтобы выбрать изображение стоит заменить на 1 метод, на которой подпишите каждую кнопку.
Вот набросок кода, может помочь:
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
44
45
46
47
48
49
50
51
52
53
54
55
56
  public partial class Form1 : Form
    {
        //словарь, где ключ - текст кнопки по которой кликаем, значение - путь
        //к соответствующему изображению
        Dictionary<string, string> image = new Dictionary<string, string>();
        public Form1()
        {
            InitializeComponent();
            //когда картинок много, советую вынести в отдельный метод чтения
            //из директории. 
            image.Add(button2.Text, "2.jpg");
            image.Add(button3.Text, "3.jpeg");
            image.Add(button4.Text, "4.jpg");
            image.Add(button5.Text, "5.jpg");
            //подписываемся на события
            button2.Click += new EventHandler(butclick);
            button3.Click += new EventHandler(butclick);
            button4.Click += new EventHandler(butclick);
            button5.Click += new EventHandler(butclick);
            FormClosed += new FormClosedEventHandler(ClosedForm);
            Load += new EventHandler(Loader);
        }
        
        private void button1_Click(object sender, EventArgs e)
        {
            //используем диалоговое окно для выбора файла
            OpenFileDialog t = new OpenFileDialog();
            if (t.ShowDialog() == DialogResult.OK)
                textBox1.Text = t.FileName;
            pictureBox1.Image = Image.FromFile(textBox1.Text);
 
        }
        private void butclick(object sender, EventArgs e)
        {
            //читаем текст нажатой кнопки
            string str = ((Button)sender).Text;
            //грузим изображение в пикчебокс
            pictureBox1.Image = Image.FromFile(image[str]);
            //отображаем путь
            textBox1.Text = image[str];
        }
 
        private void ClosedForm(object sender, FormClosedEventArgs e)
        {
            //сохраняем путь в настройках, чтобы при следующем запуске была эта картинка
            Properties.Settings.Default.path = textBox1.Text;
            Properties.Settings.Default.Save();
        }
 
        private void Loader(object sender, EventArgs e)
        {
            //загружаем ранее сохраненные данные
            textBox1.Text = Properties.Settings.Default.path;
            pictureBox1.Image = Image.FromFile(textBox1.Text);
        }
    }
Не забудьте добавить в параметры переменную path (в свойствах проекта (Properties) ->Параметры)
На всякий случай прикреплю архив с наброском, так будет более наглядно и понятно
Вложения
Тип файла: rar SaveImage.rar (841.4 Кб, 7 просмотров)
1
9 / 9 / 5
Регистрация: 24.03.2014
Сообщений: 313
18.06.2014, 12:03  [ТС] 6
Ev_Hyper, по вашему способу к сожалению программа не работает. Ошибка в этой строчке. Приложение компилируется, но уже при работающем приложении вылетает и Visual C# выдаёт ошибку "Путь имеет недопустимую форму". Переменную патч добавил, но скачал Ваше приложение и там та же ошибка. Помогите исправить пожалуйста!
C#
1
2
3
4
5
6
private void Loader(object sender, EventArgs e)
        {
            //строки с ошибкой
            textBox1.Text = Properties.Settings.Default.path;
            pictureBox2.Image = Image.FromFile(textBox1.Text);
        }
1
Заблокирован
18.06.2014, 12:23 7
slenderface, Попробуйте нажать "Продолжить", затем щелкните по любой из кнопок. И переоткройте приложение. Возможно сработает. Предполгаю дело в том, что в самый первый запуск путь был неопределен. Поэтому задайте в свойствах значение по умолчанию. Осталось понять, почему у меня вчера работало без первого исключения.
1
9 / 9 / 5
Регистрация: 24.03.2014
Сообщений: 313
18.06.2014, 12:46  [ТС] 8
Ev_Hyper, По умолчанию это какое? И можно ли как то обойтись без первого исключения?

Добавлено через 12 минут
Ev_Hyper, Проверил по вашему, но всё работает только после кнопки "продолжить" и выбора изображения. Жаль что не с первого раза.
0
Заблокирован
18.06.2014, 12:48 9
slenderface, то, которое будет загружаться в самый первый раз:
Например:
Код
1.bmp
Если при первом запуске показывать изображение не требуеться, то сделайте дополнительную проверку:
C#
1
2
3
4
5
            if (Properties.Settings.Default.path != "1.jpg")
            {
                textBox1.Text = Properties.Settings.Default.path;
                pictureBox1.Image = Image.FromFile(textBox1.Text);
            }
(Не забудьте присвоить переменной path в Параметрах начальное значение "1.bmp" и проверьте, что рядом с .exe такой файл лежит.)
И немного измените событие закрытия формы, чтобы если textbox окажеться пустым не возникло исключения:

C#
1
2
3
4
5
6
7
8
        private void ClosedForm(object sender, FormClosedEventArgs e)
        {
            //сохраняем путь в настройках, чтобы при следующем запуске была эта картинка
            if(!String.IsNullOrEmpty(textBox1.Text)){
            Properties.Settings.Default.path = textBox1.Text;
            Properties.Settings.Default.Save();
            }
        }
И лучше поставить textbox в режим только для чтения.
0
Заблокирован
18.06.2014, 12:53 10
Цитата Сообщение от slenderface Посмотреть сообщение
Ev_Hyper, Проверил по вашему, но всё работает только после кнопки "продолжить" и выбора изображения. Жаль что не с первого раза.
slenderface, странно, что у меня работает. Сейчас новый архив прикреплю.
Возможно вы запускаете в режиме отладки. В таком случае рядом с .exe нет картинок. поэтому и не хочет работать корректно.

Up:
В предыдущем сообщении был невнимателен, в проверке вместо:
C#
1
if (Properties.Settings.Default.path != "1.jpg")
надо написать:
C#
1
if (Properties.Settings.Default.path != "1.bmp")
В архиве все нормально
Вложения
Тип файла: rar SaveImage.rar (844.5 Кб, 4 просмотров)
0
9 / 9 / 5
Регистрация: 24.03.2014
Сообщений: 313
18.06.2014, 12:57  [ТС] 11
Ev_Hyper, изменил на новое значение(адрес картинки), не помогло, ошибка та же. Как быть?
1
Заблокирован
18.06.2014, 12:58 12
slenderface, может вы прикрепите свой проект, чтобы я сам посмотрел? Вроде бы в последнем архиве я все исправил. Не могу понять, почему у меня работает, а у вас нет
0
9 / 9 / 5
Регистрация: 24.03.2014
Сообщений: 313
18.06.2014, 13:07  [ТС] 13
JeansOS.rar
Хорошо, только не смейтесь пожалуйста над ним, я понимаю что это не по настоящему, но я в этому учусь... )
на диске С создайте папку C:\JEANS\Data
1
9 / 9 / 5
Регистрация: 24.03.2014
Сообщений: 313
18.06.2014, 13:10  [ТС] 14
Выбор фона находится:
Меню>Настройки системы>быстрые настройки>оформление
1
Заблокирован
18.06.2014, 13:20 15
Лучший ответ Сообщение было отмечено slenderface как решение

Решение

slenderface, вот так попробуйте изменить:
C#
1
2
3
4
5
6
7
8
9
 private void Loader(object sender, EventArgs e)
        {
            //строки с ошибкой
            if (Properties.Settings.Default.path != @"C:\JEANS\Data\pic.jpg")
            {
                textBox1.Text = Properties.Settings.Default.path;
                pictureBox2.Image = Image.FromFile(textBox1.Text);
            }
        }
Цитата Сообщение от slenderface Посмотреть сообщение
Хорошо, только не смейтесь пожалуйста над ним, я понимаю что это не по настоящему, но я в этому учусь... )
slenderface, и в мыслях не было. Первые шаги всегда самые сложные, все начинали с малого.
1
9 / 9 / 5
Регистрация: 24.03.2014
Сообщений: 313
18.06.2014, 13:28  [ТС] 16
К сожалению ошибка та же!(
0
Ev_Hyper
19.06.2014, 00:28
  #17

Не по теме:

Сдаюсь :( Мои варианты закончились

0
9 / 9 / 5
Регистрация: 24.03.2014
Сообщений: 313
19.06.2014, 12:59  [ТС] 18
Нечего, я уже несколько раз перезапустил и строки некаторые убрал! Всё суперски работает! Космическое спасибо!!!)))))

Добавлено через 12 часов 24 минуты
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
slenderface, и в мыслях не было. Первые шаги всегда самые сложные, все начинали с малого.
Просто на ютубе это высмеивают!
0
19.06.2014, 12:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.06.2014, 12:59
Помогаю со студенческими работами здесь

Сохранение книги как отдельный файл
Коллеги, доброго дня. Подскажите советом - нахожусь на развилке между удобством и автоматизацией....

Сохранение нарисованного в PictureBox в отдельный файл
Здравствуйте! У меня никак не получается сохранить измененное изображение, находящееся в...

Сохранение результатов игры в отдельный файл
Как можно написать код для сохранения результатов игры в отдельный файл? У меня проект Виселица,...

Сохранение и открытие значений полей в отдельный файл
Имеется вот такая форма ...

Сохранение текущего листа Excel в отдельный файл
Доброго всем времени суток! Помогите справиться с небольшой проблемкой. Есть файл Excel с...

Сохранение выводимых данных в отдельный текстовыйдокумент
Народ подскажите кто знает, как можнозделать чтоб программа сохраняла данные в отдельный текстовый...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

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