SaveFileDialog i tworzenie pliku.

0

Witam serdecznie. Jestem zdecydowanie początkujący i chciałbym prosić o pomoc. Otóż chciałbym zapisać przebiegi wyświetlane w mojej aplikacji (użyłem zedgraph) do plików. Kwestia pobrania obrazu i zapisania go w już istniejącym pliku to żaden kłopot. Problemem jest zapisanie obrazu do pliku, który jeszcze nie istnieje. I tu moje pytanie. Gdzie i co trzeba dopisać, żeby stworzyć ten plik i zapisać w nim obraz? Wiem, że muszę umieścić gdzieś "FileMode.Create", ale nie wiem jak.
O to fragment kodu:

 
            // 
            // saveFileDialog1
            // 
            this.saveFileDialog1.CheckFileExists = true;
            this.saveFileDialog1.DefaultExt = "png";
            this.saveFileDialog1.Filter = "PNG (*.png)|*.png|BMP (*.bmp)|*.bmp|GIF (*.gif)|*.gif|JPG" +
                "(*.jpg)|*.jpg|Wszystkie pliki (*.*)|*.*\"";
            this.saveFileDialog1.FilterIndex = 5;
            this.saveFileDialog1.InitialDirectory = "@\"C:\\\"";
            this.saveFileDialog1.Title = "Zapisz obraz jako";
 private void zapiszPrzebiegToolStripMenuItem_Click(object sender, EventArgs e)
        {
            GraphPane myPane = zedGraphControl1.GraphPane;
            Bitmap b = new Bitmap(myPane.GetImage());
            
            if (saveFileDialog1.ShowDialog() == DialogResult.OK)
            {
                b.Save(saveFileDialog1.FileName, System.Drawing.Imaging.ImageFormat.Png);
            }         
        }
0
zloty_bstok napisał(a)

Gdzie i co trzeba dopisać, żeby stworzyć ten plik i zapisać w nim obraz? Wiem, że muszę umieścić gdzieś "FileMode.Create", ale nie wiem jak.

Dlaczego musisz? FileMode.Create mogłoby Ci być potrzebne, gdybyś tworzył obiekt typu FileStream, a tutaj używasz jedynie Bitmap.Save.
Na oko ten kod jest prawidłowy, coś konkretnie Ci nie działa?

0

Nie mogę zapisać obrazu w nieistniejącym pliku. Klikam swój przycisk, otwiera się okno dialogowe, wklepuję nazwę dla nowego pliku i wyskakuje komunikat o treści "File [...] does not exist. Verify that the correct file name was given."
To co napisałem działa tylko w przypadku zapisywania obrazków do istniejących już plików.

0

Nie możesz zapisać, bo nie chcesz zapisywać nowych plików, sam tak kazałeś:

this.saveFileDialog1.CheckFileExists = true;

Wyłącz tę opcję i będzie dobrze.

0

Powinienem sobie teraz strzelić w łeb :) Dzięki serdeczne.

1 użytkowników online, w tym zalogowanych: 0, gości: 1