Wie im Titel erwähnt kriege Ich dies nicht richtig gebacken.
Hier ist mal ein bisschen code:
Version 1:
Code:
BitmapSource bmpSource = Snapshot.TakeSnapshot((int)contentX, (int)contentY, (int)contentWidth, (int)contentHeight);
string fileName = System.IO.Path.Combine(mainWnd.TempPath, "snapshot_" + DateTime.Now.ToString("HH_mm_ss_ffff") + ".jpeg");
using (Stream stream = new FileStream(fileName, FileMode.Create))
{
JpegBitmapEncoder jpegEncoder = new JpegBitmapEncoder();
jpegEncoder.QualityLevel = 100;
jpegEncoder.Frames.Add(BitmapFrame.Create(bmpSource));
jpegEncoder.Save(stream);
stream.Flush();
}
Code:
BitmapSource bmpSource = Snapshot.TakeSnapshot((int)contentX, (int)contentY, (int)contentWidth, (int)contentHeight);
string fileName = System.IO.Path.Combine(mainWnd.TempPath, "snapshot_" + DateTime.Now.ToString("HH_mm_ss_ffff") + ".jpeg");
JpegBitmapEncoder encoder = new JpegBitmapEncoder();
Stream stream = new FileStream(fileName, FileMode.Create);
MemoryStream memoryStream = new MemoryStream();
BitmapImage bImg = new BitmapImage();
encoder.Frames.Add(BitmapFrame.Create(bmpSource));
encoder.Save(memoryStream);
stream.Write(memoryStream.GetBuffer(), 0, (int)memoryStream.Length - 1);
bImg.BeginInit();
bImg.CacheOption = BitmapCacheOption.OnLoad;
bImg.StreamSource = new MemoryStream(memoryStream.ToArray());
bImg.EndInit();
memoryStream.Flush();
stream.Flush();
memoryStream.Close();
stream.Close();
// Use bImg as Thumbnail and fileName as temp-file-reference
Sobald mein program geschlossen wird, kann Ich die Datei auch manuell löschen also d.h. das kein anderes Programm auf die Datei zugreift, sondern nur das hauptprogramm womit die JPG Datei erstellt wird.
Danke falls sich jemand findet der mir weiterhelfen kann!
Frohe Weihnachten!
Legend






" Methode.