См в пикселях: Пиксели в сантиметры | Онлайн калькулятор

изображений — вычисление пикселей в см с dpi

спросил

Изменено 2 года, 3 месяца назад

Просмотрено 686 раз

Может ли кто-нибудь сказать мне формулу, используемую в этом онлайн-калькуляторе см в пиксели? https://photoresizer.net/pixel-calculator

У меня есть изображения, для которых я могу легко получить dpi, битовую глубину, высоту и ширину в пикселях, и мне нужно рассчитать размеры печати в сантиметрах для изображений. Например, если 8-битное изображение с разрешением 300 dpi имеет размеры 9448×3543 в пикселях, калькулятор должен дать мне 80×30 см, как показано на снимке экрана ниже.

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

ПРИМЕЧАНИЕ. Я заметил, что если вы разделите ширину или высоту на 118,1, это даст правильный результат (9448 \ 118,1 = 80), но я не понимаю, почему это формула и правильно ли это число для получения правильных результатов со ВСЕМИ размерами. Какая связь с числом 118.1?

  • изображения
  • пиксель
  • размеры

2

DPI = количество пикселей / длина в дюймах = N/(Lin).

Обратная формула: Lin = N/(DPI)

BTW. Связанный калькулятор выводит другую эквивалентную обратную форму: N=(Lin)*(DPI)

Дюймы, преобразованные в сантиметры: Длина в сантиметрах = 25,4 * Длина в дюймах или Lcm = 25,4 * (Lin)

==> ваша действительно нужная формула Lcm = 2,54 * N/(DPI)

тест: 300 DPI и 600 пикселей дают Lcm = 2,54 * 600/300 = 2,54 * 2 сантиметра = 5,08 сантиметра. Это 2 дюйма.

Число 118,1 – это 300, деленное на 2,54. Это 300 DPI, преобразованных в пиксели на один сантиметр.

Примечание. Часто размеры бумаги округляются до ближайшего полного миллиметра. В этом случае это будет 51 миллиметр или 5,1 сантиметра. Но точный результат, основанный на соглашении о том, сколько составляет один дюйм в метрической системе, равен 5,08 см.

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя адрес электронной почты и пароль

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания, политикой конфиденциальности и политикой использования файлов cookie

.

.net — преобразование пикселей в см в WPF

спросил

Изменено 5 лет, 9 месяцев назад

Просмотрено 11 тысяч раз

У меня есть

 ?(Новый System.Windows.LengthConverter()).ConvertFrom("1cm")
37.795275590551178 {Двойной}
    Двойной: 37,795275590551178
 

Итак, в 1см у меня 37.795275590551178px пикселей WPF.

Моя проблема в том, как я конвертирую обратно из пикселей от до см ?

  • .net
  • wpf

0

Поскольку в WPF мы имеем дело с DeviceIndependentUnits (DIU, по имени, условно «px»), эти единицы не зависят от устройства или разрешения экрана.

На самом деле коэффициенты, используемые в .NET Framework (4), для ‘px’, ‘in’, ‘cm’ и ‘pt’ соответственно

 // System.Windows.LengthConverter
частный статический двойной [] PixelUnitFactors = новый двойной []
{
    1.0,
    96.0,
    37.795275590551178,
    1.3333333333333333
};
 

Итак, у нас есть

 приватная структура PixelUnitFactor
{
    public const double Px = 1.0;
    public const double Inch = 96,0;
    public const double Cm = 37,7952755905512;
    public const double Pt = 1,33333333333333;
}
общедоступный двойной CmToPx (двойной см)
{
    вернуть см * PixelUnitFactor.Cm;
}
общедоступный двойной PxToCm (двойной px)
{
    вернуть px/PixelUnitFactor.Cm;
}
 

4

Это проблема компьютерной индустрии, использующей дюймы. На дюйм приходится 96 пикселей. Есть 2,54 см на дюйм. 37,795275590551178 (1 см) * 2,54 = 95,9999999999997 пикселей (назовем это 96).

Вы всегда можете создать константу уровня приложения для 37,795275590551178, или вы можете использовать дюймы и конвертировать туда и обратно дюймы и сантиметры.

.. указанную выше константу и разделите на нее, чтобы получить сантиметры.

96 пикселей / 37,795275590551178 = 2,54 см.

Вот еще один ТАК пост об этом: Сантиметр в пиксель

3

У меня была аналогичная проблема, но де WPF выполняет вычисления для преобразования логических пикселей в физические пиксели. Возможно, этот фрагмент кода может помочь вам.

 общедоступная структура PixelUnitFactor
{
 public const double Px = 1.0;
 public const double Inch = 96,0;
 public const double Cm = 37,795275590551178;
 public const double Pt = 1,33333333333333;
}
общедоступная структура CmUnitFactor
{
 public const double Px = 0,0264583333333333;
 общественный const двойной дюйм = 2,54;
 public const double Cm = 1.0;
 public const double Pt = 0,035277778;
}
общедоступная структура InUnitFactor
{
 public const double Px = 0,0104166666666667;
 общественный константный двойной дюйм = 1,0;
 public const double Cm = 0,3937007874015748;
 public const double Pt = 0,013888888888889;
}
общедоступная структура PtUnitFactor
{
 public const double Px = 0,75;
 общественный const двойной дюйм = 72,0;
 public const double Cm = 28,346456693;
 public const double Pt = 1.
0; } открытый класс FormsEvent { //ФУНКЦИИ ПРЕОБРАЗОВАНИЯ ПИКСЕЛЕЙ В СЕНТИМЕТРЫ, ПУЛЬГАДЫ И ПУНКТЫ public static double Convertir_PxToCm(double px) { return px / PixelUnitFactor.Cm; } public static double Convertir_PxToIn(double px) { return px / PixelUnitFactor.Inch; } public static double Convertir_PxToPt(double px) { return px / PixelUnitFactor.Pt; } //ФУНКЦИИ ПРЕОБРАЗОВАНИЯ СЕНТИМЕТРОВ В ПИКСЕЛЯХ, ПУЛЬГАДАХ И ПУНКТАХ public static double Convertir_CmToPx(double cm) { return cm / CmUnitFactor.Px; } общедоступный статический двойной Convertir_CmToIn (двойной см) {возврат см / CmUnitFactor.Inch; } public static double Convertir_CmToPt(double cm) { return cm / CmUnitFactor.Pt; } //FUNCIONES PARA CONVERTIR PULGADAS EN PIXELS, CENTÍMETROS Y PUNTOS public static double Convertir_InToPx (двойные дюймы) { return дюймы / InUnitFactor.Px; } общедоступный статический двойной Convertir_InToCm (двойные дюймы) {возврат дюймов / InUnitFactor.Cm; } общедоступный статический двойной Convertir_InToPt (двойные дюймы) {возврат дюймов / InUnitFactor.

alexxlab

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *