Форум программистов, компьютерный форум CyberForum.ru
С наступающим Новым годом!
CyberForum.ru - форум программистов и сисадминов > > >
Восстановить пароль Регистрация
 
Dimon16
Новичок
14 / 14 / 1
Регистрация: 09.06.2010
Сообщений: 35
15.10.2010, 22:31     Как перевести пиксели в сантиметры?   #1
Как перевести пиксели в сантиметры?
Заранее спасибо!
AdAgent
Объявления
15.10.2010, 22:31     Как перевести пиксели в сантиметры?
tasty_sock
Форумчанин
127 / 126 / 2
Регистрация: 26.01.2010
Сообщений: 351
15.10.2010, 23:57     Как перевести пиксели в сантиметры?   #2
От разрешения зависит. Пиксель - это точка на экране, размер может варьироваться.
Dmitry
Форумчанин
9183 / 4810 / 143
Регистрация: 09.09.2009
Сообщений: 18,980
16.10.2010, 00:10     Как перевести пиксели в сантиметры?   #3
dpi - dot per inch (точек на дюйм). Если допустим, установлено 96 dpi, то в дюйме (а это 2,54 см) их будет как раз 96 штук. Исходя из этого, на сантиметр (один) их будет 96 / 2,54 = 37,795......
body90
Форумчанин
339 / 272 / 7
Регистрация: 26.05.2009
Сообщений: 2,594
16.10.2010, 02:42     Как перевести пиксели в сантиметры?   #4
Скорее всего проблема именно в определении dpi монитора в данный момент.
Dimon16
Новичок
14 / 14 / 1
Регистрация: 09.06.2010
Сообщений: 35
16.10.2010, 10:02  [ТС]     Как перевести пиксели в сантиметры?   #5
Мне нужно узнать сколько в сантиметрах Height,Width изображения?
Как определить сколько точек в дюйме?
AdAgent
Объявления
16.10.2010, 10:02     Как перевести пиксели в сантиметры?
ValeryB
Форумчанин
628 / 373 / 3
Регистрация: 25.05.2010
Сообщений: 1,374
16.10.2010, 10:50     Как перевести пиксели в сантиметры?   #6
Цитата Сообщение от Dimon16 Посмотреть сообщение
Как определить сколько точек в дюйме?
В свойствах изображения. Если это в виде графического файла.
А про какое изображение у вас речь - не понятно. Опишите проблему более подробно.
newdj
Форумчанин
24 / 4 / 0
Регистрация: 03.09.2009
Сообщений: 73
16.10.2010, 10:58     Как перевести пиксели в сантиметры?   #7
Я конечно не уверен, но почему-то мне кажется что в зависимости от качества изображения, размер точки, то есть пикселя, может варьироваться...
Ну и соответственно их количество в сантиметре тоже не постоянно...
Dmitry
Форумчанин
9183 / 4810 / 143
Регистрация: 09.09.2009
Сообщений: 18,980
16.10.2010, 11:17     Как перевести пиксели в сантиметры?   #8
так не надо чтоб казалось, ндо просто прочитать параметрв файла - там будет все просто и понятно. у файла картинки есть данные о его разрешении в dpi и непосредственно размер в пикселах. допустим, разрешение файда 96 dpi и размер 1024 х 768. осталось сделать простое действие - поделить размеры в пикселях на значение dpi и получатся размеры в дюймах, потом поделить еще на 2,54 и получатся в сантиметрах...
Dimon16
Новичок
14 / 14 / 1
Регистрация: 09.06.2010
Сообщений: 35
16.10.2010, 11:23  [ТС]     Как перевести пиксели в сантиметры?   #9
Походу это свойства:HorizontalResolution,VerticalResolution!
r0fL
Кодило
16.10.2010, 13:51
  #10

Не по теме:

Запустите программу и измерьте на мониторе линейкой или штангенциркулем

NickoTin
Модератор
7193 / 3193 / 177
Регистрация: 14.06.2010
Сообщений: 4,318
Записей в блоге: 6
16.10.2010, 15:39     Как перевести пиксели в сантиметры?   #11
Dimon16, попробуйте так:
Код C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
using System.Runtime.InteropServices;
...
        const int HORZSIZE = 4;
        const int VERTSIZE = 6;
 
        const int HORZRES = 8;
        const int VERTRES = 10;
 
        [DllImport("gdi32.dll", SetLastError = true)]
        static extern int GetDeviceCaps(
            IntPtr hDc,
            int index
            );
 
        [DllImport("user32.dll", SetLastError = true)]
        static extern IntPtr GetDC(IntPtr hWnd);
 
        [DllImport("user32.dll", SetLastError = true)]
        static extern int ReleaseDC(IntPtr hWnd, IntPtr hDC);
...
        SizeF GetPixelSizePerMM()
        {
            IntPtr hDC = GetDC(IntPtr.Zero);
            float wM = (float)GetDeviceCaps(hDC, HORZRES) / (float)GetDeviceCaps(hDC, HORZSIZE);
            float hM = (float)GetDeviceCaps(hDC, VERTRES) / (float)GetDeviceCaps(hDC, VERTSIZE);
            ReleaseDC(IntPtr.Zero, hDC);
 
            return new SizeF(wM, hM);
        }
Добавлено через 54 минуты
Забыл добавить: вывод будет в миллиметрах.
Dimon16
Новичок
14 / 14 / 1
Регистрация: 09.06.2010
Сообщений: 35
16.10.2010, 16:17  [ТС]     Как перевести пиксели в сантиметры?   #12
Спасибо!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.10.2010, 16:46     Как перевести пиксели в сантиметры?
Еще ссылки по теме:

C# WPF .NET 4.x Как получить пиксели (цвета) из image
C# Как разбить изображение на пиксели
C# как найти пиксели одного цвета

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
NickoTin
Модератор
7193 / 3193 / 177
Регистрация: 14.06.2010
Сообщений: 4,318
Записей в блоге: 6
16.10.2010, 16:46     Как перевести пиксели в сантиметры?   #13
Цитата Сообщение от Dimon16 Посмотреть сообщение
Спасибо!
Рано радуетесь также может быть и такой вариант (он описан на большинстве форумах, статьях):
Код C#
1
2
3
4
5
6
7
8
9
10
11
12
        const int LOGPIXELSX = 88;
        const int LOGPIXELSY = 90;
...
        SizeF GetPixelSizePerMM()
        {
            IntPtr hDC = GetDC(IntPtr.Zero);
            float wM = (float)GetDeviceCaps(hDC, LOGPIXELSX) / 25.4F;
            float hM = (float)GetDeviceCaps(hDC, LOGPIXELSY) / 25.4F;
            ReleaseDC(IntPtr.Zero, hDC);
 
            return new SizeF(wM, hM);
        }
Yandex
Объявления
16.10.2010, 16:46     Как перевести пиксели в сантиметры?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Опции темы

Текущее время: 03:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.7 PL3
Copyright ©2000 - 2014, vBulletin Solutions, Inc.
Яндекс.Метрика