Как преобразовать пиксель в размер точки в HTML? - PullRequest
2 голосов
/ 16 апреля 2010

Дорогие все, я хочу преобразовать свой пиксель в размер точки, в моем проекте, когда пользователь изменяет размер текстового изображения, тогда он должен быть изменен в соответствии с шириной, используя размер точки ??

Кто-нибудь есть идеи?

1 Ответ

3 голосов
/ 16 апреля 2010

1 пиксель = 0,264583333 мм,
1 мм = 3,777527559 пикселей
в соответствии с transatorscafe.com
но в действительности Pixel - это относительное измерение, которое зависит от вашего разрешения экрана. Вы не можете правильно преобразовать относительное измерение в фиксированное измерение, вы можете только приблизить его. А правильность аппроксимации зависит от того, насколько точны ваши предположения, в этом случае допущение составляет 1 пиксель = 0,264583333 мм

Предположим, например, мой случай: У меня разрешение 1920 х 1080 пикселей (согласно настройкам дисплея windows). Тогда у меня есть 18-дюймовый монитор на моем ноутбуке. Это означает 18 дюймов по диагонали, а поскольку 1 дюйм составляет 25,4 миллиметра (по данным Google), это составляет 457,2 мм по диагонали (согласно calc.exe). Кроме того, если предположить, что длина пикселя равна мм по длине и ширине, это означает, что высота монитора в 1080/1920 раз больше, чем у него. Используя теорему Пифагора a ^ 2 + b ^ 2 = c ^ 2 = 457,2 ^ 2 мм ^ 2 а а х и б 1080/1920 х у нас есть (х) ^ 2 + (1080/1920 х) ^ 2 = 457,2 ^ 2 мм ^ 2 Решение для x приводит к 398,4843356 мм (согласно Casio Classpad 300)

Так что, если мой экран имеет ширину 1920 пикселей, равную 398,4843356 мм, для меня пиксель равен 0,20754392479166666666666666666667 мм

Итак, теперь вы можете рассчитать, если я переключу свое разрешение до 1280 x 768 пикселей, уравнение получится: х ^ 2 + (768/1280 * х) ^ 2 = 457,2 ^ 2 мм ^ 2 х разрешается до х = 392,0457656 (в соответствии с Casio Classpad 300) и поэтому 1280 пикселей соответствуют 392,0457656 мм, что составляет 1 пиксель равным 0,3062857544 мм.

Вот почему все становится больше (относительно друг друга), если вы уменьшаете разрешение. Размеры указаны в пикселях, а фактический размер в мм.

Итак, вы видите, тот же экран, но другой результат, но каждый из них правильный. Итак, вы видите, пиксель = относительно разрешения, но не в мм.

Вообще говоря:

w: width in Pixel
h: height in Pixel
d: Monitor diagonal
x: Pixel-Size

Итак, согласно Пифагору:
(шх) 2 + (хх) 2 = d 2
следует:
Pixel-Size

А так как w и h известны из настройки разрешения, теперь вы можете рассчитать ширину и высоту экрана в дюймах / см / мм.

Imports Microsoft.VisualBasic



Namespace Units

Public Class UnitConversion

    Public Shared Function mm2Points(ByRef dSomeMillimeters As Double) As System.Web.UI.WebControls.Unit
        ' Point ist eine Maßeinheit, die 1/72 Zoll entspricht.
        ' 1 Zoll = 1 in = 1000 Thou = 1000 mil = 1/12 ft = 1/36 yd = 25,4 mm = 2,54 cm = 0,254 dm = 0,0254 m.
        ' 1 Point = 0.35277777777777777777777777777778 mm
        ' --> 1mm = 2.834645669291338582677165354337 Point

        Return System.Web.UI.WebControls.Unit.Point(dSomeMillimeters * 2.8346456692913384) 'Point
    End Function


    Public Shared Function mm2Pica(ByRef dSomeMillimeters As Double) As System.Web.UI.WebControls.Unit
        'Pica ist eine Maßeinheit, die 12 Points entspricht.
        ' The contemporary computer pica is 1/72nd of the Anglo-Saxon compromise foot of 1959, i.e. 4.23_3mm or 0.166in. Not
        ' 1 Pica = 4.233333333333333333333333333333333 mm
        ' --> 1 mm = 0.23622047244094488188976377952758 Pica
        Return dSomeMillimeters * 0.23622047244094488
    End Function


    Public Shared Function cm2Points(ByRef dSomeCentiMeters As Double) As System.Web.UI.WebControls.Unit
        Return mm2Points(dSomeCentiMeters * 10.0)
    End Function


    Public Shared Function cm2Pica(ByRef dSomeCentiMeters As Double) As System.Web.UI.WebControls.Unit
        Return mm2Pica(dSomeCentiMeters * 10.0)
    End Function

End Class

End Namespace
...