Laden...

Forenbeiträge von renzH Ingesamt 2 Beiträge

26.08.2021 - 22:50 Uhr

Hi Papst, vielen Dank für die schnelle Antwort. Die Auswahl über if(sFD.FilterIndex == 1) und if(sFD.FilterIndex == 2) löst das Problem. Dank auch an Spook!

26.08.2021 - 17:06 Uhr

Hi,
ich speichere den Inhalt einer PictureBox mit folgendem Code:


private void ToolStMnuItemGrafSp_Click(object sender, EventArgs e)
        {
            string Pfad = @"D:\\Progs\\MTSpannung\\Grafiken\\";
            SaveFileDialog sFD = new SaveFileDialog();
            sFD.Filter = "jpg files (*.JPG)|*.jpg|png files (*.PNG)|*.png";
            sFD.InitialDirectory = Pfad;

            Bitmap img = new Bitmap(PicBox1.Width + 10, PicBox1.Height + 10);
            PicBox1.DrawToBitmap(img, new Rectangle(0, 0, PicBox1.Width, PicBox1.Height));

            if (sFD.ShowDialog() == DialogResult.OK)
            {
                Pfad = sFD.FileName;
                try
                {
                    if (sFD.Filter.Contains("jpg"))
                    {
                        img.Save(Pfad, ImageFormat.Jpeg);
                    }
                    else if (sFD.Filter.Contains("png"))
                    {
                        img.Save(Pfad, ImageFormat.Png);
                    }
                }
                catch (Exception SaveException)
                {
                    MessageBox.Show("Verzeichnisauswahl ungültig!\n\n\nCode:\n" 
                    + SaveException.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }

Die so erzeugten Bilddateien werden zwar in anderen Grafikprogrammen korrekt angezeigt, jedoch erscheint bei Dateien, die nicht im jpeg-Format gespeichert wurden, die im Anhang ausgewiesene Fehlermeldung. Offenbar wird also in C# keine Konvertierung vorgenommen. Kann mir jemand sagen, warum das so ist und wie der Fehler abgestellt werden kann? VielenDank.