Форум программистов, компьютерный форум CyberForum.ru

C# .NET

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 231, средняя оценка - 4.97
Dimon16
14 / 14 / 1
Регистрация: 09.06.2010
Сообщений: 35
#1

Как перевести пиксели в сантиметры? - C#

15.10.2010, 22:31. Просмотров 28301. Ответов 12
Метки нет (Все метки)

Как перевести пиксели в сантиметры?
Заранее спасибо!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
tasty_sock
131 / 130 / 2
Регистрация: 26.01.2010
Сообщений: 351
15.10.2010, 23:57     Как перевести пиксели в сантиметры? #2
От разрешения зависит. Пиксель - это точка на экране, размер может варьироваться.
Dmitry
Эксперт по компьютерным сетямЭксперт NIX
10177 / 5683 / 335
Регистрация: 09.09.2009
Сообщений: 22,357
16.10.2010, 00:10     Как перевести пиксели в сантиметры? #3
dpi - dot per inch (точек на дюйм). Если допустим, установлено 96 dpi, то в дюйме (а это 2,54 см) их будет как раз 96 штук. Исходя из этого, на сантиметр (один) их будет 96 / 2,54 = 37,795......
body90
360 / 293 / 8
Регистрация: 26.05.2009
Сообщений: 2,676
16.10.2010, 02:42     Как перевести пиксели в сантиметры? #4
Скорее всего проблема именно в определении dpi монитора в данный момент.
Dimon16
14 / 14 / 1
Регистрация: 09.06.2010
Сообщений: 35
16.10.2010, 10:02  [ТС]     Как перевести пиксели в сантиметры? #5
Мне нужно узнать сколько в сантиметрах Height,Width изображения?
Как определить сколько точек в дюйме?
ValeryB
633 / 378 / 6
Регистрация: 25.05.2010
Сообщений: 1,373
16.10.2010, 10:50     Как перевести пиксели в сантиметры? #6
Цитата Сообщение от Dimon16 Посмотреть сообщение
Как определить сколько точек в дюйме?
В свойствах изображения. Если это в виде графического файла.
А про какое изображение у вас речь - не понятно. Опишите проблему более подробно.
newdj
24 / 4 / 0
Регистрация: 03.09.2009
Сообщений: 73
16.10.2010, 10:58     Как перевести пиксели в сантиметры? #7
Я конечно не уверен, но почему-то мне кажется что в зависимости от качества изображения, размер точки, то есть пикселя, может варьироваться...
Ну и соответственно их количество в сантиметре тоже не постоянно...
Dmitry
Эксперт по компьютерным сетямЭксперт NIX
10177 / 5683 / 335
Регистрация: 09.09.2009
Сообщений: 22,357
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
Почетный модератор
8230 / 3514 / 238
Регистрация: 14.06.2010
Сообщений: 4,510
Записей в блоге: 9
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
C# Подскажите, пиксели хранящиеся в Bitmape можно обработать как двухмерный массив?
Пиксели C#
Напечатать таблицу перевода расстояний в дюймах в сантиметры C#
Рисуем пиксели C#

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

Или воспользуйтесь поиском по форуму:
NickoTin
Почетный модератор
8230 / 3514 / 238
Регистрация: 14.06.2010
Сообщений: 4,510
Записей в блоге: 9
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     Как перевести пиксели в сантиметры?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru