簡體   English   中英

RenderTargetBitmap 和 DPI

[英]RenderTargetBitmap and DPI

我不明白為什么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 + 空圖像

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.i-programmer.info/programming/wpf-workings/538-rendertargetbitmap-visual-vector-to-bitmap.html

http://www.ericsink.com/wpf3d/3_Bitmap.html

http://dedjo.blogspot.com/2008/05/performance-appliance-of.html

如何將選中的 CheckBox(Aero 主題)渲染到 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?

默認值 96 只是桌面顯示器最通用/最常用的 dpi。 但這會/可能會改變。

如果您知道在程序編譯期間位圖必須具有什么 dpi,您可以將其設置為所需的值(例如 96)。老實說,我會使用一個常量來做到這一點,但在運行時它歸結為同樣的事情。

如果您不知道需要什么分辨率的圖像,則不應對 dpi 進行硬編碼。

順便說一句:確保您始終正確設置圖像的 dpi。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM