Ich versuche das Bild von picEmployeeImage zu speichern, wenn auf eine Schaltfläche geklickt wird. PicEmployeeImage streamt ein Video. Wenn Sie also ein Foto aufnehmen, wird es in einer Datei gespeichert. Derzeit, wenn ich es versuche, sagt es "ein allgemeiner Fehler aufgetreten in GDI +"Generischer Fehler in GDI + beim Speichern des Bildes
Wie behebe ich das?
Bitte Hilfe. Hier
ist der Code:
public void TakePhoto()
{
Bitmap bm = new Bitmap(picEmployeeImage.Width, picEmployeeImage.Height);
bm = (Bitmap) picEmployeeImage.Image;
bm.Save(@"\Images\" + currentlySelectedId + ".bmp", ImageFormat.Bmp);
}
private void btnCaptureNewImage_Click(object sender, EventArgs e)
{
if (btnCaptureNewImage.Text == "Capture New Image")
{
VideoShow();
btnCaptureNewImage.Text = "Take Photo";
} else
{
TakePhoto();
btnCaptureNewImage.Text = "Capture New Image";
}
}
void VideoShow()
{
VideoCaptureDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
FinalVideoSource = new VideoCaptureDevice(VideoCaptureDevices[0].MonikerString);
FinalVideoSource.NewFrame += new NewFrameEventHandler(FinalVideoSource_NewFrame);
FinalVideoSource.Start();
}
void FinalVideoSource_NewFrame(object sender, NewFrameEventArgs eventArgs)
{
image = (Bitmap)eventArgs.Frame.Clone();
image = CropBitmap(image, 150, 100, 300, 200);
picEmployeeImage.Image = image;
}
Update: Fehlerinformationen:
System.Runtime.InteropServices.ExternalException (0x80004005): A generic error occurred in GDI+.
at System.Drawing.Image.Save(String filename, ImageCodecInfo encoder, EncoderParameters encoderParams)
at System.Drawing.Image.Save(String filename, ImageFormat format)
at BusinessSoftware.frmLoginPage.TakePhoto() in C:\Users\....cs:line 721
at BusinessSoftware.frmLoginPage.btnCaptureNewImage_Click(Object sender, EventArgs e) in C:\Users\....cs:line 705
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Genaue Ausnahme? Anrufliste? –