현재 IP 카메라에서 파일로 이미지를 저장해야하는 응용 프로그램에서 작업 중입니다. 비디오 스트림을 저장하고 싶지 않습니다. 저는 단지 100 밀리 초마다 이미지를 찍고 싶습니다.파일로 비트 맵 이미지 저장 문제
제조업체가 제공 한 JPEG 카메라에서 JPEG 이미지를 얻으려면 특정 URL을 사용합니다. IP 카메라에서 가져온 이미지를 BitmapImage에 저장하지만, BitmapImage를 파일에 저장하려고 할 때, 지정한 디렉토리에 빈 .jpg 파일을 저장합니다.
내가 이해하지 못하는 것은 이미지 컨트롤에 BitmapImage를 표시하려고 할 때 실제 이미지를 보여 주지만 저장할 때 빈 파일을 저장한다는 것입니다.
아무도이 문제를 해결하는 방법이나 해결책을 찾을 수있는 곳에서 조언 해 주실 수 있습니까?
저는 이미 JPEGBitmapEncoder를 시도했지만 성공하지 못했습니다. 여기
내가 현재 사용하고있는 코드입니다 :개인 무효 captureButton_Click (개체를 보낸 사람, RoutedEventArgs e)에 { 문자열 photosLocation, newPhotos;
photosLocation = Directory.GetCurrentDirectory() + "\\IP Cam Photos";
newPhotos = Guid.NewGuid().ToString();
Directory.CreateDirectory(photosLocation);
camLocation = photosLocation + "\\" + newPhotos;
Directory.CreateDirectory(camLocation);
captureStatusLabel.Content = "Photo capturing started!";
for (int i = 0; i < 10; i++)
{
camImage = new BitmapImage();
camImage.BeginInit();
camImage.UriSource = new Uri("http://172.16.4.14/image?res=full&x0=0&y0=0&x1=1600&y1=1200&quality=12&doublescan=0", UriKind.RelativeOrAbsolute);
while (camImage.IsDownloading)
{
captureStatusLabel.Content = "Capture Busy";
}
camImage.DownloadCompleted += camImage_DownloadCompleted;
camImage.EndInit();
captureStatusLabel.Content = "Photo " + (i + 1) + " captured!";
}
}
void camImage_DownloadCompleted(object sender, EventArgs e)
{
a++;
camImgLoc = camLocation + "\\Image " + a + ".jpg";
FileStream camFiles = new FileStream(camImgLoc, FileMode.Create);
JpegBitmapEncoder camEncoder = new JpegBitmapEncoder();
MessageBox.Show(camImage.IsDownloading.ToString() + "\n" + camEncoder.ToString());
camEncoder.Frames.Add(BitmapFrame.Create(camImage));
camEncoder.Save(camFiles);
camFiles.Close();
}
일부 소스 코드를 표시 할 수 있습니까? –
저장했을 때 이미지가 완전히 다운로드되지 않은 것처럼 들립니다. BitmapImage의 [IsDownloading] (http://msdn.microsoft.com/en-us/library/system.windows.media.imaging.bitmapsource.isdownloading.aspx) 속성을 확인하고 저장 코드를 [DownloadCompleted ] (http://msdn.microsoft.com/en-us/library/system.windows.media.imaging.bitmapsource.downloadcompleted.aspx) 이벤트 처리기. – Clemens
DownloadCompleted 이벤트 처리기에 저장 코드를 추가했지만 여전히 잘못 저장하고 있습니다. – GANDA1F