我有一个FrameworkElement
,我想将它保存为高分辨率图像(Jpeg)。我尝试了下面的代码,但结果并不是我所希望的。当我使用A4
作为纸张尺寸打印时,我得到了分辨率较差的图像。如何从FrameworkElement创建高分辨率图像?
// ...
FrameworkElement element = this.Content;
element.Measure(new System.Windows.Size(double.PositiveInfinity, double.PositiveInfinity));
element.Arrange(new Rect(element.DesiredSize));
element.UpdateLayout();
// i used element.ActulaHeight and ActualWidth but not works.
RenderTargetBitmap bitmap = new RenderTargetBitmap((int)element.Width, (int)element.Height, GPFReporstPageSizeExtension.DPI, GPFReporstPageSizeExtension.DPI, System.Windows.Media.PixelFormats.Pbgra32);
bitmap.Render(element);
// ....
你的意思是“高分辨率”?我不确定术语“高度分辨率”是什么意思。更一般地说:对于您的位图,您将需要指定所需分辨率的像素大小。请注意,A4纸上的300 dpi(大多数人认为最高分辨率为“高分辨率”)大约为2500像素宽,3500像素高;如果您使用屏幕坐标中的宽度和高度值,则一定会在A4纸上获得低分辨率图像。如果没有[良好的_minimal_,_complete_代码示例](http://stackoverflow.com/help/mcve),就不可能给出一个好的答案。 – 2015-02-25 01:00:33
尝试[ScaleTransform](https://msdn.microsoft.com/en-us/library/system.windows.media.scaletransform%28v=vs.110%29.aspx)控件并呈现此控件... – 2015-02-25 12:06:54
不要打印出来。首先检查图像。这是你期望的吗? – usr 2015-02-25 12:22:43