用代码获取八种图片的尺寸
(2019-06-24 08:57:32)
标签:
图片尺寸vb代码 |
分类: VB编程 |
用代码获取八种图片的尺寸
大家都知道,将图片框有关属性设置为自动大小,这样,打开图片后,图片框的尺寸就是图片的尺寸。如果你不想将图片框有关属性设置为自动大小,那么打开图片后可用API函数GetObject来获取图片尺寸。但是有的图片无法直接用图片框打开(例如.webp),或者,我们想在不打开图片的情况下也能获取图片大小,这时,就可使用下面的代码来获取图片的尺寸了,GetImageSize过程的参数w、h就是返回的图片尺寸。
注意一点:图片的宽或高均要 ≤65025 像素。
本代码能获取bmp、ico、gif、png、tif、wmf、jpg 、webp等8种图片的尺寸。
Private Sub Command1_Click()
Dim dlg As Object, NewName As String, picW As Long, picH As
Long
Set dlg = CreateObject("MSComDlg.CommonDialog")
With dlg
End With
GetImageSize NewName, picW, picH
If picW = 0 Or picH = 0 Then
Else
End If
End Sub
Private Sub GetImageSize(OpenName As String, w As Long, h As
Long)
On Error GoTo 100
Dim k As Long, H1 As Byte, H2 As Byte, W1 As Byte, W2 As Byte
Open OpenName For Binary As #1
Get #1, 1, H1
Get #1, , H2
Get #1, , W1
Get #1, , W2
If H1 = 0 And H2 = 0 And W1 = 1 Then 'ico
ElseIf H1 = 66 And H2 = 77 Then 'bmp
ElseIf H1 = 71 And H2 = 73 And W1 = 70 Then 'gif
ElseIf H1 = 255 And H2 = 216 Then 'jpg
ElseIf H1 = 137 And H2 = 80 And W1 = 78 And W2 = 71 Then 'png
ElseIf H1 = 215 And H2 = 205 And W1 = 198 And W2 = 154 Then
'wmf
ElseIf (H1 = 77 Or H1 = 73) And H2 = H1 Then 'tif
ElseIf H1 = 82 And H2 = 73 And W1 = 70 And W2 = 70 Then 'RIFF
Else
End If
Close #1
w = W1 * 256 + W2
h = H1 * 256 + H2
Exit Sub
100
Close
End Sub

加载中…