Below is the complete solution for get image from live stream and save to local disk.
//=============================================================
//Please change following variables to suite your need, strIP to the camera IP
private string strIP = "000.00.0.000";
private static string ImagePath = "d:\\";
static string name = "";
//===========================================================
// Get image from live stream.
private void BtnDownload_Click(object sender, RoutedEventArgs e)
{
try
{
string baseUrl = "http://" + strIP + "/cgi-bin/snapshot.cgi?channel=2";
Uri urlUri = new Uri(baseUrl);
WebRequest webRequest = WebRequest.CreateDefault(urlUri);
webRequest.ContentType = "image/jpeg";
WebResponse webResponse = webRequest.GetResponse();
var images = new BitmapImage();
images.BeginInit();
images.StreamSource = webResponse.GetResponseStream();
images.EndInit();
img.Source = images;
}
catch (Exception exception)
{
MessageBox.Show(exception.Message);
}
}
//Get image from image control to save on local disk.
public byte[] GetImageFromImageControl(BitmapImage imageC)
{
MemoryStream memStream = new MemoryStream();
JpegBitmapEncoder encoder = new JpegBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(imageC));
encoder.Save(memStream);
return memStream.GetBuffer();
}
//Save to local disk
private void btnSave_Click(object sender, RoutedEventArgs e)
{
try
{
var image = GetImageFromImageControl(img.Source as BitmapImage);
SaveImageToDisk(image);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
public static void SaveImageToDisk(byte[] imageByte)
{
MemoryStream ms = new MemoryStream(imageByte);
Image image = Image.FromStream(ms);
name = ImagePath + DateTime.Now.Ticks + ".jpeg";
image.Save(name);
MessageBox.Show("Image saved at " + name);
}
//=============================================================
//Please change following variables to suite your need, strIP to the camera IP
private string strIP = "000.00.0.000";
private static string ImagePath = "d:\\";
static string name = "";
//===========================================================
// Get image from live stream.
private void BtnDownload_Click(object sender, RoutedEventArgs e)
{
try
{
string baseUrl = "http://" + strIP + "/cgi-bin/snapshot.cgi?channel=2";
Uri urlUri = new Uri(baseUrl);
WebRequest webRequest = WebRequest.CreateDefault(urlUri);
webRequest.ContentType = "image/jpeg";
WebResponse webResponse = webRequest.GetResponse();
var images = new BitmapImage();
images.BeginInit();
images.StreamSource = webResponse.GetResponseStream();
images.EndInit();
img.Source = images;
}
catch (Exception exception)
{
MessageBox.Show(exception.Message);
}
}
//Get image from image control to save on local disk.
public byte[] GetImageFromImageControl(BitmapImage imageC)
{
MemoryStream memStream = new MemoryStream();
JpegBitmapEncoder encoder = new JpegBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(imageC));
encoder.Save(memStream);
return memStream.GetBuffer();
}
//Save to local disk
private void btnSave_Click(object sender, RoutedEventArgs e)
{
try
{
var image = GetImageFromImageControl(img.Source as BitmapImage);
SaveImageToDisk(image);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
public static void SaveImageToDisk(byte[] imageByte)
{
MemoryStream ms = new MemoryStream(imageByte);
Image image = Image.FromStream(ms);
name = ImagePath + DateTime.Now.Ticks + ".jpeg";
image.Save(name);
MessageBox.Show("Image saved at " + name);
}
No comments:
Post a Comment