Centímetro a píxel

¿Cómo convierto centímetro a píxel en c #?

int CentimeterToPixel(double Centimeter) { double pixel = -1; using (Graphics g = this.CreateGraphics()) { pixel = Centimeter * g.DpiY / 2.54d; } return (int)pixel; } 

Puede usar las propiedades DpiX y DpiY del objeto de Gráficos en el que está dibujando (que debe tener, ya que la conversión no tiene sentido en ausencia de un contexto de gráficos de algún tipo).

En DpiX y DpiY , la “D” significa “puntos” o píxeles, mientras que la “i” significa “pulgadas”. Por lo tanto, convertirá píxeles a pulgadas. Entonces todo lo que tienes que hacer es convertir pulgadas a centímetros => (x * 2.54)

Además, si desea ser más “preciso”, observe lo siguiente: CÓMO: Cómo hacer que una aplicación muestre unidades de medida reales

El píxel y el centímetro son dos unidades diferentes que se calculan de acuerdo con la configuración de DPI del usuario. Para convertir correctamente necesitas conocer el DPI de la pantalla de usuario.

Si tiene una pantalla de 12.8 centímetros que muestra una imagen de 1280×1024, entonces tiene 100 píxeles por centímetro.

Sin embargo, puede intentar utilizar Graphics.TransformPoints para convertir de píxel a cm o al contrario.

En WPF, un centímetro es aproximadamente 37.8 píxeles independientes del dispositivo.

Longitud en CM = Longitud de los píxeles * 2.54 / DPI

Creo que puede obtener el DPI de cada pantalla usando WMI, el valor que está buscando está en la clase Win32_DisplayConfiguration, bajo el campo LogPixe.

Compruebe este enlace sobre el uso de WMI para recuperar datos: ENLACE

Como dije en mi comentario, tendrás que dar más información. (¿Es esta una aplicación de Windows Forms? ASP.Net?)

El enfoque fundamental es:

  • Averigüe el DPI del dispositivo de salida en cuestión. (Con frecuencia es de 96 [96 puntos por pulgada], pero no puede asumir eso.) Este hilo puede ayudarlo a hacerlo, si se trata de una aplicación de Windows Forms. Además, la clase de Graphics tiene los miembros DpiX y DpiY , así que puedes usarlos.
  • Convierta el DPI a DPC [puntos por centímetro] (DPC = DPI / 2.54).
  • Multiplica tu número de centímetros por tu valor DPC.