Member 13504137 Ответов: 0

Сохранение нарисованного изображения проблема C# GUI


Я сделал OpenFileDialog, и он работает, но я борюсь с выполнением SaveFileDialog.

Я должен сделать "похожее на краску приложение", я сделал ручку, кисть и рисование фигур, но есть проблема, когда я пытаюсь сохранить свой рисунок. Я тону на picutreBox.

Что я уже пробовал:

Откройте Файл С Кодом:
<pre>
private void openToolStripMenuItem_Click(object sender, EventArgs e)
        {
            openFileDialog1.Title = "Open an image";
            openFileDialog1.Filter = "JPEG|*.jpeg|GIF|*.gif|BMP|*.bmp|TIFF|*.tiff|PNG|*.png|JPG|*.jpg";
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    file = Image.FromFile(openFileDialog1.FileName);
                    pictureBox1.Image = file;
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            } 
        }


Диалоговое окно savefiledialog:
<pre lang="c#">
private void saveToolStripMenuItem_Click(object sender, EventArgs e)
        {

            saveFileDialog1.Title = "Save image";
            saveFileDialog1.Filter = "BMP|.bmp|JPEG|*.jpeg";
            if (saveFileDialog1.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    file.Save(saveFileDialog1.FileName);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }

CHill60

Где находится код, который инициализирует saveFileDialog1 возражать?
Имеет переменную file были инициализированы перед вызовом метода save? Если нет попробуйте что то вроде

file = pictureBox1.Image;
перед попыткой сохранения

Member 13504137

Я добавил элемент savefiledialog для меня из инструментов. О файлах":

открытый form1()
{
метод InitializeComponent();
Графика g = pictureBox1.CreateGraphics();
г. SmoothingMode = Система.Рисование.Drawing2D.SmoothingMode.сглаживание;
файл = имя picturebox1.Изображения;
}

общественности частичного класс form1 : форма
{
Файл изображения;
...
}
а теперь я попробовал.:

saveFileDialog1.Title = "сохранение изображения";
saveFileDialog1.Фильтр = "формат JPEG|*.в формате JPEG";
if(saveFileDialog1.ShowDialog()==DialogResult.ОК)
{
файл = имя picturebox1.Изображения;
пробовать
{
Графика g = pictureBox1.CreateGraphics();
файл.Save(saveFileDialog1.имя файла);
}
поймать (исключение бывший)
{
Ящик для сообщений.Показать(напр.сообщение);
}
}

CHill60

И есть ли на самом деле изображение в pictureBox1 в этот момент - используйте свой отладчик, чтобы узнать. Я понятия не имею, почему вы добавили бит CreateGraphics.

Member 13504137

Нет, я действительно запускаю свою форму, затем рисую что-то ручкой на pictureBox1, затем иду в "сохранить" в моем menuStrip, и он открывает диалоговое окно сохранения файла, затем я ввожу имя файла, и когда я нажимаю "сохранить", он показывает мне сообщение об исключении.

0 Ответов