是否有一些无痛的转换? 我用Google搜索了这个样本:
using (MemoryStream ms = new MemoryStream())
{//WriteableBitmap wb defined before
wb.SaveJpeg(ms, (int)image1.Width, (int)image1.Height, 0, 100);
BitmapImage bmp = new BitmapImage();
bmp.SetSource(ms);
}
但是wb没有SaveJpeg方法! (使用System.Windows.Media.Imaging;使用System.Windows.Media;) 和bmp没有SetSource =(
答案 0 :(得分:1)
有一个功能。
var bf = BitmapFrame.Create(wb);
答案 1 :(得分:0)
您可以将WriteableBitmap
直接放入BitmapFrame.Create()
。然后,您可以使用BitmapFrame
JpegBitmapEncoder
保存为JPEG格式
MemoryStream ms = new MemoryStream();
JpegBitmapEncoder enc = new JpegBitmapEncoder();
enc.Frames.Add(BitmapFrame.Create(wb));
enc.Save(ms);
如果要在保存之前调整图像大小,我建议使用Visual Studio中NuGet包管理器中提供的WriteableBitmapEx。以下是它的使用方法:
WriteableBitmap newWB = wb.Resize(256, 256, WriteableBitmapExtensions.Interpolation.Bilinear);