Пиксель в сантиметр? - PullRequest
       25

Пиксель в сантиметр?

20 голосов
/ 27 августа 2009

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

Ответы [ 9 ]

28 голосов
/ 27 августа 2009

Аналогично этот вопрос , который спрашивает о точках вместо сантиметров. Есть 72 точки на дюйм и 2,54 сантиметра на дюйм, поэтому просто замените 2,54 на 72 в ответе на этот вопрос. Я процитирую и исправлю свой ответ здесь:

2,54 сантиметра на дюйм; если достаточно предположить 96 пикселей на дюйм, формула довольно проста:

сантиметров = пикселей * 2,54 / 96

Существует способ получить настроенные пиксели на дюйм вашего дисплея для Microsoft Windows, который называется GetDeviceCaps. У Microsoft есть руководство под названием «Разработка приложений с поддержкой DPI», см. Раздел «Создание шрифтов с поддержкой DPI».

19 голосов
/ 27 августа 2009

Преобразование пикселей в сантиметры зависит от DPI (точек на дюйм) носителя, отображающего изображение, то есть монитора, лазерного принтера и т. Д.

http://wiki.answers.com/Q/How_do_you_convert_pixels_into_centimeters

8 голосов
/ 27 августа 2009

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

Если это так, я бы порекомендовал либо отображать ваши предметы рядом с реальными предметами (кредитные карты, долларовые банкноты, банки с поп-музыкой и т. Д.), Либо даже лучше, позволяя пользователю держать что-то на экране, например, кредит карта или доллар или правитель. Затем вы можете сделать так, чтобы они масштабировали ползунок или что-то подобное, чтобы соответствовать ширине или высоте этого объекта.

Держа кредитную карту, имеющую относительно известную высоту и ширину, вплоть до экрана, вы можете легко определить соотношение пикселей и дюймов и использовать это для своего сердца.

Вики говорят

Большинство кредитных карт выпускаются местными банками или кредитными союзами и имеют форму и размер, указанные в стандарте ISO / IEC 7810 как ID-1 (85.60 × 53,98 мм)

Используя mspaint, моя кредитная карта имеет высоту 212 пикселей, то есть 53,98 мм / 212 пикселей = 3,92 пикселей на мм. Умножьте на 10, и это 39,2 пикселей на см.

Вы можете ПРОСТО делать это программно с помощью javascript, C #, flash, как хотите.

6 голосов
/ 27 августа 2009

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

4 голосов
/ 27 августа 2009

Нет, разные носители и мониторы имеют разную плотность пикселей.

Например, монитор настольного компьютера может иметь 75 пикселей на дюйм, тогда как отпечаток может выводиться с разрешением 300.

Вот список дисплеев по плотности пикселей

3 голосов
/ 03 мая 2014

В Adobe Illustrator CS3 :( рисунок, который я получаю, составляет 1 см = 28,347 пикселей. Примечание. Я использую iMac 7. Разрешение 102 пикселя на дюйм, 40 ppcm по ссылке * 1002. * предоставлено ребо.

Я создал документ Adobe Illustrator CS3, используя javascript, чтобы проверить значение 1 см = 28,347 пикселей, и оно идеально соответствует.

Я знаю, что этот вопрос очень старый, но я пытался найти на него ответ и решил поделиться своими выводами.

Привет

1 голос
/ 02 июня 2018

Система пикселей в том, что это зависит от вашего разрешения экрана. Ну, во-первых, вы должны получить dpi (плотность пикселей на дюйм) вашего экрана. Например, ваш экран dpi 96;

1 см = 37,795276F пикселей в 96 точек на дюйм.

37,795276F / 96F = 0,03937007F, то есть каждый пиксель в 1dpi.

Теперь вы можете сделать его адаптированным к вашему экрану, получив текущее разрешение экрана и умножив его на 0,03937007F. тогда у вас есть каждый сантиметр по вашему желанию dpi (разрешение экрана)

позволяет установить сценарий.

Я хочу создать метод, который получает CM и возвращает базу пикселей на экране Dpi;

public float CentimeterToPixel(int valueCM, float dpi)
{
   return 0.03937007F * dpi * valueCM;
}

Если вы хотите сделать его более точным, вам нужно приблизиться к dpiX и dpiY.

например, в C # winforms. Вы можете добавить объект Graphics из System.Drawing И System.Drawing.Drawing2D затем получите значение dpiX & dpiY и спроектируйте свою область на основе этого, чтобы иметь более точный расчет (в некоторых случаях горизонтальное разрешение отличается от вертикального ). Смотрите код ниже.

using System;
using System.Windows.Forms;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;

namespace MyApp
{
    static class MyAppClass
    {
        private static Bitmap bmp = new Bitmap(1, 1);// a simple bitmap that automaticaly created base on current screen resolution
        private static Graphics graphic = Graphics.FromImage(bmp);

        public static float CentimeterToPixelWidth(int valueCM)
        {
           return 0.03937007F * graphic.DpiX * valueCM;
        }

        public static float CentimeterToPixelHeight(int valueCM)
        {
           return 0.03937007F * graphic.DpiY * valueCM;
        }
    }

}

Желаю тебе, Гейдар.

1 голос
/ 27 августа 2009

Размер пикселей изменяется в зависимости от устройства отображения.

В следующем «найденном» коде для определения плотности пикселей используются вызовы API Получить разрешение экрана в .NET

(«Найдено», как в Google, но я не пробовал)

0 голосов
/ 27 августа 2009

Насколько я понимаю, ПИКСЕЛ это:

Элемент изображения

Таким образом, это зависит от двух вещей:

(а) Разрешение (б) Физический размер экрана

Таким образом, если вы разделите размер экрана на разрешение, это должно дать вам CM на пиксель.

...