Сохранение нарисованного изображения проблема 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, и он открывает диалоговое окно сохранения файла, затем я ввожу имя файла, и когда я нажимаю "сохранить", он показывает мне сообщение об исключении.