オブジェクトをWPFWriteableBitmap
のオブジェクトに変換するにはどうすればよいですか?BitmapImage
このリンクWriteableBitmap
はSilverlightを対象としています。オブジェクトにメソッドがないため、WPFでのプロセスは同じではありませんSaveJpeg
。
だから私の質問は、WPFでオブジェクトWriteableBitmap
をオブジェクトに変換するにはどうすればよいですか?BitmapImage
オブジェクトをWPFWriteableBitmap
のオブジェクトに変換するにはどうすればよいですか?BitmapImage
このリンクWriteableBitmap
はSilverlightを対象としています。オブジェクトにメソッドがないため、WPFでのプロセスは同じではありませんSaveJpeg
。
だから私の質問は、WPFでオブジェクトWriteableBitmap
をオブジェクトに変換するにはどうすればよいですか?BitmapImage
のいずれかを使用して、フレームを新しいBitmapEncoders
ものに保存できますWriteableBitmap
BitmapImage
この例では使用しPngBitmapEncoder
ますが、状況に合ったものを選択してください。
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();