Reputation: 24
whenever I am trying to save the webcamera capture image automatically then then runtime error is coming in path.automaticaly name like 0.jpg,02.jpg,03.jpg like this way image will save in the particular mention folder.but giving run time error. plz check this.
namespace camera1
{
public partial class Form1 : Form
{
private Capture capture;
private bool captureinprogress;
public Form1()
{
InitializeComponent();
}
private void ProcessFrame(object sender, EventArgs arg)
{
Image<Bgr, Byte> ImageFrame = capture.QueryFrame();
cameraimage.Image = ImageFrame;
string root = "C:\\photo\0"; // automatically saving image to c drive like 001.jpg,002.jpg;
for (int i = 0; i < 100; i++)
{
if (File.Exists(" "))
{ }
else
{
string Path = root + i + ".jpg";
ImageFrame.Save(Path);
}
{
if (ImageFrame != null)
{
pictureBox1.Image = ImageFrame.ToBitmap();
}
if (pictureBox1 != null)
{
pictureBox2.Image = ImageFrame.ToBitmap();
}
if (pictureBox2 != null)
{
pictureBox3.Image = ImageFrame.ToBitmap();
}
}
}
}
private void btnStart_Click(object sender, EventArgs e)
{
if (capture == null)
{
try
{
capture = new Capture();
}
catch (NullReferenceException excpt)
{
MessageBox.Show(excpt.Message);
}
}
if (capture != null)
{
if (captureinprogress)
{ //if camera is getting frames then stop the capture and set button Text
// "Start" for resuming capture
btnstart.Text = "Start!"; //
Application.Idle -= ProcessFrame;
}
else
{
//if camera is NOT getting frames then start the capture and set button
// Text to "Stop" for pausing capture
btnstart.Text = "Stop";
Application.Idle += ProcessFrame;
}
captureinprogress = !captureinprogress;
}
}
private void ReleaseData()
{
if (capture != null)
capture.Dispose();
}
}
}
Upvotes: 0
Views: 509
Reputation: 3803
I dont have a instance here but you need to change this to
string root = @"C:\photo\0\";// instead of string root = "C:\\photo\0";
note: You cannot save directly into C: Drive because you need to run the program with administrative privileges. I suggest using a folder on desktop or some library folder such as My Pictures.
Upvotes: 0
Reputation: 23945
You need to mask the backslashes, or the compiler will try to interpret \p
oder \0
, which he can't
So the easiest way to accomplish this is to add an @
at the start of your string.
string root = @"C:\photo\0";
Or you use double-backslashes all the time:
string root = "C:\\photo\\0";
For further reference, please read:
http://msdn.microsoft.com/en-us/library/vstudio/as2f1fez.aspx
Unrecognized escape sequence for path string containing backslashes
Upvotes: 1