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.ericsink.com/wpf3d/3_Bitmap.html
http://dedjo.blogspot.com/2008/05/performance-appliance-of.html
チェックボックス (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を使用しますか?