1. 程式人生 > >C#中毫米與畫素的換算方法

C#中毫米與畫素的換算方法

畫素與毫米的轉換
轉換還需要知道另一個引數:DPI(每英寸多少點)
象素數 / DPI = 英寸數
英寸數 * 25.4 = 毫米數

對於顯示裝置,不管是印表機還是螢幕,都有一種通用的方法
先用GetDeviceCaps(裝置控制代碼,LOGPIXELSX)
或者
GetDeviceCaps(裝置控制代碼,LOGPIXELSY)獲得裝置每英寸的畫素數
分別記為:px 和 py
一英寸等於25.4mm
那麼毫米換算成畫素的公式為 
水平方向的換算: x * px /25.4
垂直方向的換算: y * py /25.4
畫素換算為毫米 x * 25.4 / px
在程式中這麼寫
MyControl.Height := 10{mm} * PixelsPerInch * 10 div 254;
分子和分母同乘以10,將浮點數運算轉化為整數運算,效率更高

相關推薦

C#毫米換算方法

畫素與毫米的轉換轉換還需要知道另一個引數:DPI(每英寸多少點)象素數 / DPI = 英寸數英寸數 * 25.4 = 毫米數 對於顯示裝置,不管是印表機還是螢幕,都有一種通用的方法先用GetDeviceCaps(裝置控制代碼,LOGPIXELSX)或者GetDeviceCaps(裝置控制代碼,LOGPIXE

C/C++ 巨集預處理使用方法大全 (VC)

C/C++ 中的巨集 (#define) 與預處理 (#if/#ifdef/#pragma) 的使用方法大全、使用技巧 開發環境:VC 2005 關鍵字:巨集, 預定義巨集, 預處理, 預編譯頭, VC, #pragma, 編譯選項, 程式區段 RTFM: Read

淺談C++qsortsort的使用方法區別

這兩天在刷leetcode時看到了一些關於排序的題目,其中遇到各種大神對sort與qsort的使用,個人在使用時對比發現了一些sort與qsort的區別,並對它們的使用方法進行了一些總結介紹。 在平時程式設計時,排序是一種經常要用到的操作。如果每次都自己臨場寫)排序演算法,

C#載入圖片讀取圖片上的方法

這個是我在別人網上摘的!如果發現我摘的是你的,就給我發郵件,我把它給刪了![email protected] (1)在.NET中建立一個窗體,加入pictureBox控制元件。設定其Image為空,SizeMode屬性設為AutoSize;(2)加入一個button

C#靜態非靜態方法比較

通過 bsp 不同 oss 分配 htm 不能 size tar C#靜態方法與非靜態方法的區別不僅僅是概念上的,那麽他們有什麽具體的區別呢?讓我們通過本文向你做一下解析。 C#的類中可以包含兩種方法:C#靜態方法與非靜態方法。那麽他們的定義有什麽不同呢?他們在使用上

C#物件的關係,以及方法申明的static修飾符

C#中,類(class)的書寫,是class 類名稱:例如class Program這就是一個Program類,類理解起來就是同一類事物,具有同樣的特性,就如同我們常說的人類,鳥類,這樣具有相同特性和行為的一類事物的統稱,在程式設計中這種特性我們可以把它用一些方法功能來表示,例如程式:

C#webbrowserjavascript(js)交互的方法

新建 基本 tool 開發環境 應用 pub click show 還需要 今天在做一個項目的時候需要用c#搞一個webbrowser,然後有些地方還需要與js交互。所以就查了一下資料,發現很多博客提到了但是卻沒有說下具體的操作。所以我就寫一下. 開發環境是Visual

opencv對影象點訪問的三種方法利用程式進行解讀

程式碼放到自己的工程中,執行就可以的 #include <opencv2\opencv.hpp> #include <opencv2\core\core.hpp> #include <opencv2\highgui\highgui.hpp> #includ

C#Form的Paint事件響應方法過載虛方法OnPaint()的區別

Form_Paint()方法是Paint事件的響應方法,OnPaint是可過載的虛方法,OnPaint方法是呼叫Paint事件的,用哪一個,效果是一樣,就看那一個方便了內部是這樣實現的: protected virtual OnPaint(PaintEventArgs

OpenCV查詢表修改LUT用法

1、查詢表 之前我在OpenCV中影象遍歷與畫素操作中有提到過查詢表遍歷影象的API函式cv::LUT,鑑於其大巧於內的美感[笑],特意寫一篇部落格探討一下。從數學上來看查詢表是一個簡單的一對一或多對一的函式,定義瞭如何將畫素轉換為新的值。從資料的組織關係上來

C# 物件Json互轉的方法整理筆記

前言          原先一直做CS的開發,對Json瞭解不多,最近轉做BS後,才接觸到了Json。作為後臺與前端頁面資料互動的基礎,Json的地位非常重要,自然而然Json轉換方法的重要性也不言面喻。 最開始使用的是同事原來寫好的物件轉Json的方法,並沒有什麼問題,

opencv訪問圖片方法(二)——迭代器iterator

opencv訪問圖片畫素的第二種方法為:迭代法。在迭代法中,我們所需要的僅僅是獲得矩陣的begin和end,然後增加迭代直至 從begin到end。將*操作符新增在迭代指標前,即可訪問當前指向的內容。相比於指標直接訪問可能出現越界問題,迭代器絕對 是非常安全的方法。用關鍵字

Unity關於單位單位長度的關係

開頭 以下是對unity中關於螢幕畫素與世界座標單位長度的關係的總結。 總結 在camera處於平行投影狀態下時,即orthographic,其size引數的數值實際上是螢幕所對應的高度的一半,舉個例子,建立一個高度為10的cube,這時你把size設為5

C#的反射和擴展方法的運用

get 做了 tor 問題 pre cti 反射 轉變 dal 前段時間做了一個練手的小項目,名叫Book_Bar,用來賣書的,采用的是三層架構,也就是Models,IDAL,DAL,BLL 和 Web , 在DAL層中各個類中有一個方法比較常用,那就是 Ro

C#StructClass的區別

而是 適用於 ack 定義 cts 多態 支持 關鍵字 for class和struct最本質的區別是class是引用類型,而struct是值類型,它們在內存中的分配情況有所區別。 什麽是class? class(類)是面向對象編程的基本概念,是一種自定義數據結構類型,通

C#outref區別

erro 變量 但是 color 賦值 運行 網上 ann amp 一、ref(參考)與out區別 1、out(只出不進) 將方法中的參數傳遞出去,在方法中將該參數傳遞出去之前需要在該方法起始賦初值;在方法外傳遞的該參數可以不用賦值; 簡單理解就是:將一個東西拋出去之前必須

C#的Dictionary字典類常用方法介紹

remove span one style pre 獲取 all str 常用方法 1 using System.Collections.Generic;//引用命名空間//Dictionary可以理解為散列集合 2 public class DictionaryTe

C#結構的區別實例分析

類與結構 main bds nbsp 模擬鼠標 指向 img adding 區別 類與結構是C#程序設計中基本的數據類型,而初學者往往不能很好的分清二者之間的區別。本文就以附帶實例形式加以說明。具體如下: 一、基本概念: 類: 引用類型,存儲在堆中,棧中存儲引用地址

C#PredicateFunc泛型委托的用法實例

public pan html 加水印 pre wid bcf 委托 ora 本文以實例形式分析了C#中Predicate<T>與Func<T, bool>泛型委托的用法,分享給大家供大家參考之用。具體如下: 先來看看下面的例子:static vo

C++繼承抽象類

post dog urn 針對 delet rtu 繼承 prot virt 繼承語法格式如下: class 子類名稱 : 繼承方式(public private protected 三種) 父類名稱 純虛函數格式: virtual 返回值類型 函數名(參數列表)= 0;含