
Pixels versus Medidas de Unidad
#1
Escrito 01 agosto 2011 - 06:16
Fleon XD.
#2
Escrito 01 agosto 2011 - 06:28
1 Píxel (x)

- Centímetros: 0.026458333
- Milimetros: 0.264583333
- Pulgadas: 0.010416667
- Metro: 0.000264583
de Medida a un Píxel (x)

- Centímetros: 37.795275591
- Milimetros: 3.779527559
- Pulgadas: 96
- Metro: 3779.527559055
Saludos.
#3
Escrito 01 agosto 2011 - 08:54
Es decir, los pixeles son unidades dependientes de la pantalla, al convertir de pixeles a pulgadas o centímetros, las tablas de equivalencias cambian dependiendo de cada monitor.
Para obtener la equivalencia primero debemos obtener los pixeles por pulgada de nuestro monitor con la función:
Screen.PixelsPerInch;
Con este factor ya se puede convertir a otras unidades con las constantes conocidas:
const TWIPS_PER_INCHES = 1440; CMS_PER_INCHES = 2.54; MMS_PER_INCHES = 25.4; POINTS_PER_INCHES = 72; PICAS_PER_INCHES = 6;
Saludos
#4
Escrito 01 agosto 2011 - 09:45
Fleon XD
#5
Escrito 01 agosto 2011 - 10:14
Si quieres cambiar de referencia y convertirlo a otras unidades se aplica el mismo principio, primero obtener los pixeles por pulgada y después se convierte a cualquier unidad.
En la impresora se puede obtener de la siguiente manera:
begin with Printer.Canvas do begin PixPerInchX := GetDeviceCaps(Handle, LOGPIXELSX); PixPerInchY := GetDeviceCaps(Handle, LOGPIXELSY); end;
Consulta por la función GetDeviceCaps de la API de Windows, devuelve información útil acerca de las impresoras.
Saludos
#6
Escrito 01 agosto 2011 - 10:32
#7
Escrito 01 agosto 2011 - 11:07
Entonces, es labor del programador interpretar las unidades de medida y presentarlo de manera correcta dependiendo del dispositivo de salida.
Entonces, se tiene que pensar de esta forma:
- En lugar de guardar las posiciones en pixeles, se puede elegir cualquier unidad independiente del dispositivo como milímetros, pulgadas o si se quiere ser más neutral twips (como lo hacen muchos programas de diseño).
- Después al presentarlo en pantalla se hace la conversión de acuerdo a los pixeles por pulgada del monitor.
-Por último al presentarlo en la impresora se hace la conversión de acuerdo a los puntos por pulgada de la impresora.
Otro aspecto que debemos considerar es que si vamos a darle la opción al usuario de modificar el reporte, debemos darle la sensación de que está diseñando con milimetros o pulgadas, aunque al obtener las coordenadas desde el ratón nosotros sabemos que se manejan los pixeles y que debemos convertirlas a pulgadas en todo momento para guardar las posiciones en nuestro archivo.
Parece algo complicado pero el usuario espera ver su reporte de la misma forma en pantalla que en la impresora y en cualquier otro dispositivo, si nosotros solamente pensamos en pixeles perdemos información valiosa respecto a las dimensiones y proporciones.
Saludos
#8
Escrito 01 agosto 2011 - 08:22
Héctor ¿que és twips? No recuerdo haber escuchado ese término.
Saludos,
#9
Escrito 01 agosto 2011 - 10:04
twip (TWentIeth of a Point) es un punto es una unidad de medida de textos, fuentes o impresión, comúnmente utilizada o de más uso. Un twip equivale a 1/1440 de pulgada, y un punto es 1/72 de pulgada por lo tanto es la vigésima parte de un punto.
La unidad de medida twip es utilizada para la creación de pantallas en informática, muchos de los programadores están relacionados directamente con esta unidad ya que les permite diseñar con exactitud la ventanas a mostrar.
Visual Basic por ejemplo utiliza twips para diseñar formularios. Tal vez sea más común en nuestro entorno utilizar pixeles, pero en un entorno de diseño gráfico se prefiere utilizar twips, puntos y picas para tener más control y exactitud. Principalmente en los formatos como PDF y PostScript que fueron creados para ofrecer gran calidad en la impresión no se deben guardar los valores como pixeles.
Saludos
#10
Escrito 03 agosto 2011 - 04:57
Gracias Héctor por aclarar mi duda. Será que hace años que no toco VB que olvidé por completo el concepto.
Y como tampoco me dedico al diseño gráfico, menos aún. Hasta ahora, en las veces que he tenido que tocar algo de imagen, trabajé con centímetros, haciendo el paso de pixel a cm en función del valor ppp; al menos es lo que hago en Gimp.
Saludos,