См в пикселях: Пиксели в сантиметры | Онлайн калькулятор
изображений — вычисление пикселей в см с 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.