不支持图像的给定路径格式

时间:2012-05-07 02:15:01

标签: c# image image-processing format save

我有一个保存图像的程序,但是当我调试它时出现了这个错误:

  

不支持给定路径的格式。

我想知道为什么它不受支持,以及如何解决这个问题。提前致谢

我的代码

BitmapSource image = BitmapSource.Create(colorFrame.Width, colorFrame.Height, 
                     96, 96, PixelFormats.Bgr32, null, pixels, stride);

ImageFormat format = ImageFormat.Jpeg;

string file_name = "C:\\Kinected\\Images\\Kinect" + bb1 + ".jpg";

image.Save(file_name, format);

修改

我添加了代码,并且编译正确,但文件永远不会保存。这是代码:

string mypath = System.IO.Path.Combine(@"C:\", "Kinected", "Images");
if (!Directory.Exists(mypath))
  {
       Directory.CreateDirectory(mypath);
       file_name = System.IO.Path.Combine(mypath, "Kinect 1" + bb1 + ".jpeg");
  }

if (file_name == null)
 {
       return;
 }

if (!Directory.Exists(file_name))
 {
        Directory.CreateDirectory(file_name);
 }

修改

我添加了以下所有代码,但仍然出现The given path's format is not supported.错误。再次感谢。

BitmapSource image = BitmapSource.Create(
                colorFrame.Width, colorFrame.Height, 96, 96, PixelFormats.Bgr32, null, pixels, stride);

            totalFrames = colorFrame.FrameNumber;
            ImageFormat format = ImageFormat.Jpeg;                

            if (PersonDetected == true)
            {
                if (!Directory.Exists(mypath))
                {
                    Directory.CreateDirectory(mypath);
                    file_name = "C:\\Kinected\\Images\\Kinect 1 " + bb1 + ".jpeg";
                }
                if (file_name == null || mypath == null || image == null)
                {
                    if (mypath == null)
                    {
                        mypath = System.IO.Path.Combine("D:/", "Kinected", "Images");

                        if (!Directory.Exists(mypath))
                        {
                            Directory.CreateDirectory(mypath);
                        }
                    }

                    if (file_name == null)
                    {
                        file_name = "D:\\Kinected\\Images\\Kinect " + bb1 + ".jpeg";
                    }

                    if (image == null)
                    {
                        image = BitmapSource.Create(
                                     colorFrame.Width, colorFrame.Height, 96, 96, PixelFormats.Bgr32, null, pixels, stride);
                    }
                }

                if (totalFrames % 10 == 0)
                {
                    if (file_name != null && image != null && format != null)
                    {
                        image.Save(file_name, format);//where I get the error
                    }
                }
            }

2 个答案:

答案 0 :(得分:2)

始终制作路径

string mypath = Path.Combine(@"C:\", "Kinected", "Images");

产生此问题的领域很多。

<强> 1。确保创建路径。

if(!Directory.Exists(mypath))
    Directory.CreateDirectory(mypath);

<强> 2。也许目录已经创建,但你没有权限是C:。将C:改为D:

string file_name = Path.Combine(@"D:\", "Kinect" + bb1 + ".jpg");

现在检查它是否在那里创建。

详细了解Save Method

答案 1 :(得分:0)

尝试使用文件名:

string file_name = "c:\\example\\path\\afile.jpg";