WPF Canvas生成图片的时候,我想把分辨率改成300,怎么做?代码 见内
public void ExportToBmp(Uri path, Canvas surface)
{
if (path == null) return;
Transform transform = surface.LayoutTransform;
surface.LayoutTransform = null;
Size size = new Size(surface.Width, surface.Height);
surface.Measure(size);
surface.Arrange(new Rect(size));
RenderTargetBitmap renderBitmap =
new RenderTargetBitmap(
(int)size.Width,
(int)size.Height,
96d, //这个地方就是输出分辨率的设置,我把这两个96改成300,输出的图片就不完整,为什么 ?
96d,
PixelFormats.Default);
renderBitmap.Render(surface);
using (FileStream outStream = new FileStream(path.LocalPath, FileMode.Create))
{
BmpBitmapEncoder encoder = new BmpBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(renderBitmap));
encoder.Save(outStream);
}
surface.LayoutTransform = transform;
}