카테고리 없음

단위 변환

쵸코난 2021. 12. 15. 12:04

 

VBA에서는 pt 단위를 사용하는데 cm나 px로 변환이 필요할 때가 종종 있습니다.

이럴 때 사용할 수 있는 변환 식을 정리합니다.

0.2cm를 pt단위로 변경하려면 cm2pt(0.2)를 해주면 되겠습니다.

 

Option Explicit

'2번째 도형을 1번째 도형 오른쪽에 mySpace 만큼 띄움
Sub myAlign()
    
    Dim sr As ShapeRange
    Dim mySpace As Single
    
    mySpace = cm2pt(0.2)
    
    On Error Resume Next
    Set sr = ActiveWindow.Selection.ShapeRange
    If sr.Count <> 2 Then MsgBox "도형을 2개 선택하세요.": Exit Sub
    On Error GoTo 0
    
    sr(2).Left = sr(1).Left + sr(1).Width + mySpace
    
End Sub

Function cm2in(cm As Single) As Single

    cm2in = cm * 2.54     '1in => 2.54cm

End Function

Function in2cm(inch As Single) As Single

    in2cm = inch * 0.3937     '1cm => 0.3937in

End Function

Function pt2cm(pt As Single) As Single

    pt2cm = pt * 0.0352778    '1pt => 0.0352778cm

End Function

Function cm2pt(cm As Single) As Single

    cm2pt = cm * 28.346     '1cm => 28.3465pt

End Function

Function pt2px(pt As Double) As Single
 
    pt2px = pt * 1.3333     '1pt = 1.3333px
    
End Function

Function px2pt(px As Double) As Single
 
    px2pt = px * 0.75   '1px = 0.75pt
    
End Function

'// 화면확대비율이 100%인 경우임
Function px2cm(px As Single) As Single

    px2cm = px * 0.02645835         '0.75 * 0.0352778
    
End Function
'// 화면확대비율이 100%인 경우임
Function cm2px(cm As Single) As Single

    cm2px = cm * 37.7937218         '28.346 * 1.3333
    
End Function

cm나 인치는 인쇄를 위한 물리적인 크기단위이기 때문에 변동이 없지만

px은 화면 상의 단위라 가변적입니다.

 

따라서 만약 윈도우 디스플레이 설정에서 화면 확대가 2배 되어 있다면

cm나 인치단위의 특정 물리적인 크기의 이미지를 px로 변환한 다면 px값은 2배가 되어야 할 수도 있습니다.

 

추가. A4용지에 출력할 때 이미지 해상도 PPI 구하기

Sub Test()
	Debug.Print PPI(794,1123)	' 96
	Debug.Print PPI(2476, 3502)	' 300
    Debug.Print PPI(6516, 9216) ' 788
End Sub

Function PPI(imgWidth as single, imgHeight as single) As Single  'Pixel Per Inch
 
    'A4 Paper in Inch
    paperWidth = 8.25
    paperHeight = 11.67
    
    PPI = Sqr(imgWidth ^ 2 + imgHeight ^ 2) / Sqr(paperWidth ^ 2 + paperHeight ^ 2)
    'Debug.Print PPI
End Function

 

특정 종이 사이즈에서 선명하게 출력하기 위한 비트맵이미지의가로/세로 px크기 수치나 관련 팁은

아래 링크를 참고하세요.

https://kin.naver.com/qna/detail.naver?d1id=1&dirId=102020103&docId=410212499#answer1 

 

ppt 픽셀 사진 관련 질문

픽셀 3278x4606짜리 사진을 b5 크기의 ppt에 넣으면 화질이 안 깨질까요?

kin.naver.com