c# wpf rendertargetbitmap

c# - RenderTargetBitmap y DPI



wpf (1)

No entiendo por qué los parámetros de DPI en RenderTargetBitmap se usan de la manera en que parecen ser usados. Muy a menudo veo un código que se ocupa de la configuración de ppp no ​​estándar ajustando el tamaño de la imagen según el DPI de esta manera:

new RenderTargetBitmap ((int) (width/96d)*dpi, (int) (height/96d)*dpi, dpi, dpi, PixelFormats.Pbgra32);

Ejemplos:

http://blogs.msdn.com/b/jaimer/archive/2009/07/03/rendertargetbitmap-tips.aspx

ContentControl + RenderTargetBitmap + imagen vacía

http://social.msdn.microsoft.com/forums/en-US/wpf/thread/984da366-33d3-4fd3-b4bd-4782971785f8/

Otras veces, la ppp parece estar codificada de manera rígida a 96 o diferentes valores como:

new RenderTargetBitmap (width, height, 96, 96, PixelFormats.Pbgra32);

Ejemplos:

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

¿Cómo representar un CheckBox (tema Aero) marcado en un RenderTargetBitmap?

o

new RenderTargetBitmap (width, height, 120, 96, PixelFormats.Pbgra32);

Ejemplos:

http://msdn.microsoft.com/en-us/library/system.windows.media.imaging.rendertargetbitmap.aspx

¿Cuándo harías lo uno y lo otro?

¿Tengo razón al decir que siempre debe ajustar el tamaño del mapa de bits (como en el primer ejemplo) si luego desea mostrar la imagen con el mismo tamaño que el control dentro de su aplicación?

¿Y que probablemente debería usar un dpi fijo a 96 cuando lo guarda en un archivo, o si está usando un dpi diferente no ajusta el ancho y el alto?

Digamos que quiero guardar la imagen de un control en un archivo con un tamaño fijo. ¿Seguiría configurando el dpi o solo usaría el valor predeterminado de 96?


El valor predeterminado de 96 es solo el dpi más general / usado de las pantallas de escritorio. Pero eso va a cambiar.

Si sabe qué dpi debe tener el mapa de bits durante la compilación de su programa, puede configurarlo en el valor deseado (por ejemplo, 96). Sea honesto, usaría una constante para hacerlo, pero se reduce a lo mismo en tiempo de ejecución.

Si no sabe a qué resolución se necesitará la imagen, no debe codificar en firme los ppp.

Por cierto: asegúrate de configurar siempre los ppp de una imagen correctamente.