【问题标题】:C# Saving image from picturebox (A generic error occurred in GDI+)C# 从图片框保存图像(GDI+ 中发生一般错误)
【发布时间】:2018-11-27 15:19:53
【问题描述】:

首先,我从 Access 数据库中检索图像并用它填充图片框。

            con.Open();
        string sql = "select Foto from TSP_Data where KayitNo=" + sNo;
        OleDbCommand cmdResim = new OleDbCommand(sql, con);
        using (OleDbDataReader oku = cmdResim.ExecuteReader())
        {
            while (oku.Read())
            {
                byte[] veri = oku["Foto"] as byte[];
                using (MemoryStream mstream = new MemoryStream())
                {
                    mstream.Write(veri, 0, veri.Length);
                    Image fotop = Image.FromStream(mstream);
                    digerFormFoto.Image = fotop;
                }
            }
        }

将图像检索到图片框没有错误,它工作正常。

但是当我尝试使用带有 savefiledialog 的图片框保存方法保存图像时,它会出现如下错误: GDI+ 中出现一般错误

SaveFileDialog sfd = new SaveFileDialog();
        sfd.Filter = "Images|*.png;*.bmp;*.jpg";
        ImageFormat format = ImageFormat.Png;
        if (sfd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        {
            string ext = System.IO.Path.GetExtension(sfd.FileName);
            switch (ext)
            {
                case ".jpg":
                    format = ImageFormat.Jpeg;
                    break;
                case ".bmp":
                    format = ImageFormat.Bmp;
                    break;
                case ".png":
                    format = ImageFormat.Png;
                    break;
            }
            digerFormFoto.Image.Save(sfd.FileName, format); //digerFormFoto is picturebox

【问题讨论】:

  • 如果您在不指定格式的情况下尝试保存图像怎么办?

标签: c# generics picturebox


【解决方案1】:

如果图像已被 GDI+ 使用或之前没有被释放,则可能会发生这种情况,因为 GDI+ 在使用时会锁定图像。我建议您使用内存流重新创建图像,或者从图片框创建一个新的位图,然后将其保存如下:

Bitmap bitmapImage = new Bitmap(digerFormFoto.Image);
bitmapImage.Save(sfd.FileName, System.Drawing.Imaging.ImageFormat.Bmp)

【讨论】:

    猜你喜欢
    • 2013-09-26
    • 1970-01-01
    • 2015-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-27
    • 2010-12-19
    相关资源
    最近更新 更多