Twipstopixels java_Access量度单位缇与像素,厘米等的换算关系

本文介绍了缇(Twips)作为Access中的一种量度单位,其与像素、厘米之间的换算关系,并提供了DPI的计算方式。通过DPI,可以得出1 Twip等于15 Pixels的转换公式。此外,还分享了两个用于转换堤(Twips)到像素及像素到堤的VBA函数,帮助进行单位转换。
摘要由CSDN通过智能技术生成

在Access中,我们常常看到计量单位缇(Twips)。

所谓缇是屏幕的一种量度单位,等于 1/20 磅。缇是独立于屏幕的单位,可确保在所有显示系统中,屏幕应用程序中的屏幕元素的位置和比例都相同。逻辑上一英寸约为 1440 缇,一厘米为 567 缇 ( 在显示时,屏幕项目的长度是用英寸或厘米测量的 )。

像素(Pixels):监视器或打印机分辨率的最小单位

那么缇跟像素是怎么计算的呢?

右键=》桌面=》属性,选择“设置”选卡,单击高级按钮。

里面出现DPI设置。一般为“正常尺寸(96 DPI)”。

DPI的意思就是 DPI (Dots per Inch)。因此我们可以得到如下换算公式

1 Twip = 1440 TPI / 96 DPI = 15 Pixels

02cb8090a1392043357379cac5f27995.png

这里顺便说一下 ACCESS 中的其他几个单位的转换关系

磅:指打印的字符的高度的度量单位。1 磅等于 1/72 英寸,或大约等于 1 厘米的 1/28。

英寸:2.54 厘米

一般情况下:1厘米=8505像素

另外分享几个堤与像素相互转换的通用函数

Option Compare Database

Option Explicit

Private Declare Function apiGetDC Lib "user32" Alias "GetDC" _

(ByVal hwnd As Long) As Long

Private Declare Function apiReleaseDC Lib "user32" Alias "ReleaseDC" _

(ByVal hwnd As Long, ByVal hdc As Long) As Long

Private Declare Function apiGetDeviceCaps Lib "gdi32" Alias "GetDeviceCaps" _

(ByVal hdc As Long, ByVal nIndex As Long) As Long

Private Const LOGPIXELSX = 88

Private Const LOGPIXELSY = 90

Public Const DIRECTION_VERTICAL = 1

Public Const DIRECTION_HORIZONTAL = 0

'===============================================================================

'-函数名称: gFunTwipsToPixels

'-功能描述: 转换堤到像素

'-输入参数说明: 参数1:rlngTwips Long 需要转换的堤

' 参数2:rlngDirection Long DIRECTION_VERTICAL是Y方向 DIRECTION_HORIZONTAL为X方向

'-返回参数说明: 转换后像素值

'-使用语法示例: gFunTwipsToPixels 50,DIRECTION_VERTICAL

'-参考:

'-使用注意:

'-兼容性: 97,2000,XP compatible

'-作者: 王宇虹(参考微软KB),改进:王宇虹

'===============================================================================

Function gFunTwipsToPixels(rlngTwips As Long, rlngDirection As Long) As Long

On Error GoTo Err_gFunTwipsToPixels

Dim lngDeviceHandle As Long

Dim lngPixelsPerInch As Long

lngDeviceHandle = apiGetDC(0)

If rlngDirection = DIRECTION_HORIZONTAL Then '水平X方向

lngPixelsPerInch = apiGetDeviceCaps(lngDeviceHandle, LOGPIXELSX)

Else '垂直Y方向

lngPixelsPerInch = apiGetDeviceCaps(lngDeviceHandle, LOGPIXELSY)

End If

lngDeviceHandle = apiReleaseDC(0, lngDeviceHandle)

gFunTwipsToPixels = rlngTwips / 1440 * rlngPixelsPerInch

Exit_gFunTwipsToPixels:

On Error Resume Next

Exit Function

Err_gFunTwipsToPixels:

MsgBox Err.Description, vbOKOnly + vbCritical, "Error: " & Err.Number

Resume Exit_gFunTwipsToPixels

End Function

'===============================================================================

'-函数名称: gFunPixelsToTwips

'-功能描述: 转换像素到堤

'-输入参数说明: 参数1:rlngPixels Long 需要转换的像素

' 参数2:rlngDirection Long DIRECTION_VERTICAL是Y方向 DIRECTION_HORIZONTAL为X方向

'-返回参数说明: 转换后堤值

'-使用语法示例: gFunPixelsToTwips 50,DIRECTION_VERTICAL

'-参考:

'-使用注意:

'-兼容性: 97,2000,XP compatible

'-作者: 王宇虹(参考微软KB),改进:王宇虹

'===============================================================================

Function gFunPixelsToTwips(rlngPixels As Long, rlngDirection As Long) As Long

On Error GoTo Err_gFunPixelsToTwips

Dim lngDeviceHandle As Long

Dim lngPixelsPerInch As Long

lngDeviceHandle = apiGetDC(0)

If rlngDirection = DIRECTION_HORIZONTAL Then '水平X方向

lngPixelsPerInch = apiGetDeviceCaps(lngDeviceHandle, LOGPIXELSX)

Else '垂直Y方向

lngPixelsPerInch = apiGetDeviceCaps(lngDeviceHandle, LOGPIXELSY)

End If

lngDeviceHandle = apiReleaseDC(0, lngDeviceHandle)

gFunPixelsToTwips = rlngPixels * 1440 / rlngPixelsPerInch

Exit_gFunPixelsToTwips:

On Error Resume Next

Exit Function

Err_gFunPixelsToTwips:

MsgBox Err.Description, vbOKOnly + vbCritical, "Error: " & Err.Number

Resume Exit_gFunPixelsToTwips

End Function

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值