C 畫素轉公釐

2021-10-05 12:30:17 字數 601 閱讀 3284

最近用到c#中輸出影象,需要確定影象實際寬高,網上找資料,大部分是說先獲取實際寬度,然後獲取寬方向的畫素點數,計算比例即可。但獲取到的寬度跟我測量的螢幕寬度不一致。dpi倒是獲取正確,最後繞一圈使用了如下寫法, 計算出來正確的寬度:

system.windows.forms.panel p = new system.windows.forms.panel();

system.drawing.graphics g = system.drawing.graphics.fromhwnd(p.handle);

intptr hdc = g.gethdc();

int width = getdevicecaps(hdc, 4);     // horzres 

int pixels = getdevicecaps(hdc, 8);     // bitspixel

int dpi = getdevicecaps(hdc, 88);

width =(int)( pixels * 25.4 / dpi);

g.releasehdc(hdc);

return (((double)pixels / (double)width) * (double)length);

C 畫素和公釐轉換

公釐 畫素 dpi 25.4 畫素 公釐數 25.4 dpi 核心 單位轉換類 公釐數 畫素 dpi 25.4 畫素 公釐數 25.4 dpi public class toolunitconversion 建構函式 物件 1 獲取顯示器的 dpi 2 獲取的 dpi public toolunit...

c 刻度 公釐 英吋 畫素轉換

從目前所掌握的資料來看,c 程式中將公釐轉換畫素的方法無非兩種 第一種 2 以公釐為單位的顯示寬度3 4 const int horzsize 4 5 6 以畫素為單位的顯示寬度 0 655357 8 const int horzres 8 9 const int logpixelsx 88 10 ...

C 中公釐與畫素的換算方法

c 中以畫素作為尺寸單位,畫素是一種相對的尺寸概念,與公釐的轉換與當前顯示器的解析度有關。在不同解析度下轉換的係數不同。借助gdi可以完成公釐至畫素的轉換。public static double millimeterstopixelswidth double length dllimport gd...