WPF Canvas生成图片的时候,我想把分辨率改成300,怎么做?代码 见内

Jonney 2014-05-14 05:02:00
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;
}
...全文
296 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
dongxy14 2014-05-29
  • 打赏
  • 举报
回复
WriteableBitmap
jiaoshiyao 2014-05-28
  • 打赏
  • 举报
回复
Bitmap

8,737

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧