Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как открыть\сохранить графический файл на панели? 
V
    Опции темы
genialno
Дата 23.11.2008, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 18.11.2008

Репутация: нет
Всего: нет



Делаю что-то похожее на примитивный графический редактор.

Не получается открытие и сохранение файлов.
Имется форма, на форме panel1. Естественно, есть меню(....Открыть, Сохранить....).
Как правильно написать обработчик кнопки "Открыть", чтобы графический файл открывался на panel1?

Если на панель ещё положить  pictureBox1, тогда в  pictureBox1 отображает открываемый рисунок, естественно. Но мне надо на панели..
Код, открывает на pictureBox1 выбранную картинку
Код

        private void openFileToolStripMenuItem_Click(object sender, EventArgs e)
        {
            openFileDialog1.Filter = "Только BMP|*.bmp|А лучше только JPG|*.jpg;*.jpeg|Хотя нет, лучше все|*.*";
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
             {
                 pictureBox1.Image = Image.FromFile(openFileDialog1.FileName);
              
            }  
        }


также пробовал , избегая pictureBox1. Но как тут и что?

       
Код

  
            Graphics gfx=this.CreateGraphics()
            gfx.DrawImage(Image,Point); 
         


Т.е как нажав на кнопку, открыть на пенеле графический рисунок?


PM MAIL   Вверх
genialno
Дата 23.11.2008, 23:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 18.11.2008

Репутация: нет
Всего: нет



разобрался с открытием  smile 
Код

if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                Graphics gfx = panel1.CreateGraphics();

                Image newImage = Image.FromFile(openFileDialog1.FileName);

                Point ulCorner = new Point(100, 100);

                gfx.DrawImage(newImage, ulCorner);
            }
        }


надо читать MSDN  )
PM MAIL   Вверх
genialno
Дата 24.11.2008, 00:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 18.11.2008

Репутация: нет
Всего: нет



условие то же.

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

private void saveFileToolStripMenuItem_Click(object sender, EventArgs e)
        {
         
            Stream myStream;
            SaveFileDialog saveFileDialog1 = new SaveFileDialog();

            saveFileDialog1.Filter = "bmp files (*.bmp)|*.bmp|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();
                }
            }


файл создаёт, но размер файла бмп равен 0(пустой).
Чего-то не хватает  в коде... Чего?
PM MAIL   Вверх
metis
Дата 26.11.2008, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 29.1.2008

Репутация: нет
Всего: нет



Такой вариант подойдет:
Код

                SaveFileDialog sfd = new SaveFileDialog();
                sfd.Filter = " JPEG|*.jpg|BMP|*.bmp";
                sfd.ShowDialog();
                if (sfd.FileName != "")
                {
                    FileStream stream = (FileStream)sfd.OpenFile();
                    switch (sfd.FilterIndex)
                    {
                        case 1:
                            pictureBox1.Image.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
                            break;
                        case 2:
                            pictureBox1.Image.Save(stream, System.Drawing.Imaging.ImageFormat.Bmp);
                            break;
                     }
                    stream.Close();

                }

PM MAIL   Вверх
genialno
Дата 7.12.2008, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 18.11.2008

Репутация: нет
Всего: нет




1)
Цитата(metis @  26.11.2008,  10:37 Найти цитируемый пост)
pictureBox1........

было же написано, без  pictureBox.


2)сам разобрался )



PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0914 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.