【发布时间】:2011-08-09 04:35:14
【问题描述】:
我不明白为什么RenderTargetBitmap 上的 DPI 参数的使用方式与它们看起来的使用方式相同。
我经常看到通过根据 DPI 调整图像大小来处理非标准 DPI 设置的代码,如下所示:
new RenderTargetBitmap ((int) (width/96d)*dpi, (int) (height/96d)*dpi, dpi, dpi, PixelFormats.Pbgra32);
例子:
http://blogs.msdn.com/b/jaimer/archive/2009/07/03/rendertargetbitmap-tips.aspx(通过web.archive.org)
ContentControl + RenderTargetBitmap + empty image
http://social.msdn.microsoft.com/forums/en-US/wpf/thread/984da366-33d3-4fd3-b4bd-4782971785f8/
其他时候 dpi 似乎被硬编码为 96 或不同的值,如下所示:
new RenderTargetBitmap (width, height, 96, 96, PixelFormats.Pbgra32);
例子:
http://www.ericsink.com/wpf3d/3_Bitmap.html
http://dedjo.blogspot.com/2008/05/performance-appliance-of.html
How to render a checked CheckBox (Aero theme) to a RenderTargetBitmap?
或
new RenderTargetBitmap (width, height, 120, 96, PixelFormats.Pbgra32);
例子:
http://msdn.microsoft.com/en-us/library/system.windows.media.imaging.rendertargetbitmap.aspx
你什么时候做一个,一个做另一个?
如果您以后想在应用内显示与控件相同大小的图像,我是否应该始终调整位图的大小(如第一个示例中所示)?
您可能应该在将其保存到文件时使用 96 的固定 dpi,或者如果您使用不同的 dpi 不调整宽度和高度?
假设我想将控件的图像保存到具有固定大小的文件中。然后我会设置 dpi 还是只使用默认的 96?
【问题讨论】:
标签: c# wpf rendertargetbitmap