आप इस उदाहरण में एक नया BitmapImage
को WriteableBitmap
फ्रेम को बचाने के लिए हम PngBitmapEncoder
का उपयोग करेगा लेकिन सिर्फ एक है कि आपकी स्थिति के अनुसार चुनें BitmapEncoders
से एक का उपयोग कर सकते हैं।
public BitmapImage ConvertWriteableBitmapToBitmapImage(WriteableBitmap wbm)
{
BitmapImage bmImage = new BitmapImage();
using (MemoryStream stream = new MemoryStream())
{
PngBitmapEncoder encoder = new PngBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(wbm));
encoder.Save(stream);
bmImage.BeginInit();
bmImage.CacheOption = BitmapCacheOption.OnLoad;
bmImage.StreamSource = stream;
bmImage.EndInit();
bmImage.Freeze();
}
return bmImage;
}
उपयोग:
BitmapImage bitmap = ConvertWriteableBitmapToBitmapImage(your writable bitmap);
या आप इस आसान उपयोग के लिए एक विस्तार विधि बना सकता है
public static class ImageHelpers
{
public static BitmapImage ToBitmapImage(this WriteableBitmap wbm)
{
BitmapImage bmImage = new BitmapImage();
using (MemoryStream stream = new MemoryStream())
{
PngBitmapEncoder encoder = new PngBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(wbm));
encoder.Save(stream);
bmImage.BeginInit();
bmImage.CacheOption = BitmapCacheOption.OnLoad;
bmImage.StreamSource = stream;
bmImage.EndInit();
bmImage.Freeze();
}
return bmImage;
}
}
उपयोग:
WriteableBitmap wbm = // your writeable bitmap
BitmapImage bitmap = wbm.ToBitmapImage();
स्रोत
2013-01-04 21:20:57
सी [इस उत्तर] (http: //stackoverflow.com/a/13988871/1136211) और Wri द्वारा RenderTargetBitmap को प्रतिस्थापित करें teableBitmap। आपको वास्तव में इस रूपांतरण की आवश्यकता क्यों है? आमतौर पर यह आवश्यक नहीं है, क्योंकि बिटमैप इमेज और लिखितबल बिटमैप में एक सामान्य बेस क्लास बिटमैपसोर्स है जो किसी छवि के सभी प्रासंगिक गुण प्रदान करता है। – Clemens