從目前所掌握的資料來看,c#程式中將公釐轉換畫素的方法無非兩種:
第一種:
///
2:/// 以公釐為單位的顯示寬度
3:///
4:const
int horzsize = 4;
5:///
6:/// 以畫素為單位的顯示寬度 0~65535
7:///
8:const
int horzres = 8;
9:const
int logpixelsx = 88;
10:const
int logpixelsy = 90;
11:public
static
double millimeterstopixelswidth(intptr handle, double length) //length是公釐,1厘公尺=10公釐
12:
20:
21: [system.runtime.interopservices.dllimport("gdi32.dll")]
22:private
static
extern
int getdevicecaps(intptr hdc, int index);
此種方法計算的值與實際刻度相比:10mm=實際刻度8mm
以此技術的程式:桌面刻度尺
技術文章引用:
在文章中所說的
gdi中有乙個函式是getdevicecaps(),可以獲取一些關於裝置的一些屬性,如horzsize/horzres/logpixelsx等。以上三者的關係通常滿足:horzsize = 25.4 * horzres/logpixelsx
但是在程式中卻無法滿足該條件。
第二種:
///
2:/// 1英吋=25.4公釐
3:///
4:const
double millimerertopixel = 25.4;
5:
6:public
static
double millimetertopixel(intptr handle, double length) //length是公釐,1厘公尺=10公釐
7:
此種方法是根據網上的換算關係得來的。得到的值與實際刻度相比:180mm=實際刻度185mm
以此技術的程式:夏克螢幕刻度尺
以目前而言,還無法準確的進行轉換,從而繪製標準刻度尺。如果各位有更好的方法,還望提示下,先謝謝了。
C 畫素和公釐轉換
公釐 畫素 dpi 25.4 畫素 公釐數 25.4 dpi 核心 單位轉換類 公釐數 畫素 dpi 25.4 畫素 公釐數 25.4 dpi public class toolunitconversion 建構函式 物件 1 獲取顯示器的 dpi 2 獲取的 dpi public toolunit...
C 畫素轉公釐
最近用到c 中輸出影象,需要確定影象實際寬高,網上找資料,大部分是說先獲取實際寬度,然後獲取寬方向的畫素點數,計算比例即可。但獲取到的寬度跟我測量的螢幕寬度不一致。dpi倒是獲取正確,最後繞一圈使用了如下寫法,計算出來正確的寬度 system.windows.forms.panel p new sy...
C 中公釐與畫素的換算方法
c 中以畫素作為尺寸單位,畫素是一種相對的尺寸概念,與公釐的轉換與當前顯示器的解析度有關。在不同解析度下轉換的係數不同。借助gdi可以完成公釐至畫素的轉換。public static double millimeterstopixelswidth double length dllimport gd...