=getFileMetadata([COLOR=Red][B][CurrentProject].[Path] [/B][/COLOR]& "\","stock-photo-10435961-constructor-worker-with-spirit-level.JPG")
getFileMetadata("c:\","stock-photo-10435961-constructor-worker-with-spirit-level.JPG")
Option Compare Database
Public Function getFileMetadata(filefolder As String, filenm As String) As String
Dim objShell As Shell32.shell
Dim objFolder As Shell32.Folder
Dim objFolderItem As Shell32.FolderItem
Set objShell = New shell
Set objFolder = objShell.NameSpace(filefolder)
Set objFolderItem = objFolder.ParseName(filenm)
Dim cTxt As String, intCtr As Integer
cTxt = cTxt & objFolder.GetDetailsOf(objFolderItem, [COLOR=Red][B]31[/B][/COLOR])
getFileMetadata = cTxt
Set objFolderItem = Nothing
Set objFolder = Nothing
Set objShell = Nothing
End Function
Sub mmm()
Dim strFile As String '文件名
Dim strFileType As String 'TIF标记
Dim iffsetIFD As Long '第一个IFD的偏移量
Dim iCountDE As Integer 'DE的数量
Dim lWidth As Long '图像宽度
Dim lHeight As Long '图像高度
Dim Temp1 As Integer, Temp2 As Long, i As Integer, k As Integer
strFile = "c:\1.05-1.25.tif"
Open strFile For Binary As #1
strFileType = String(2, 0)
Get #1, , strFileType '获取TIF标记
' If strFileType <> "II" And strFileType <> "MM" Then Close #1: Exit Sub
Get #1, , Temp1 '版本号废弃
Get #1, , iffsetIFD '获取第一个IFD的偏移量
Seek #1, iffsetIFD + 1 '设置下一个读出位置为第一个IFD的偏移量
Get #1, , iCountDE '获取第一个IFD中DE的数量
For i = 1 To iCountDE
MsgBox "dddd"
Get #1, , Temp1 '获取属性的标签编号
If Temp1 = 256 Then '如果是图像宽
Get #1, , Temp1 '废弃
Get #1, , Temp2 '废弃
Get #1, , lWidth
k = k + 1
ElseIf Temp1 = 257 Then '如果是图像高
Get #1, , Temp1 '废弃
Get #1, , Temp2 '废弃
Get #1, , lHeight
k = k + 1
Else '否则这些数据废弃
Get #1, , Temp1
Get #1, , Temp2
Get #1, , Temp2
End If
If k = 2 Then Exit For
Next i
Close #1
Debug.Print "Width:" & lWidth & vbCrLf & "Heigth:" & lHeight
End Sub
Sub mmm()
Dim strFile As String '文件名
Dim strFileType As String 'TIF标记
Dim iffsetIFD As Long '第一个IFD的偏移量
Dim iCountDE As Integer 'DE的数量
Dim lWidth As Long '图像宽度
Dim lHeight As Long '图像高度
Dim Temp1 As Integer, Temp2 As Long, i As Integer, k As Integer
strFile = "c:\1.05-1.25.tif"
Open strFile For Binary As #1
strFileType = String(2, 0)
Get #1, , strFileType '获取TIF标记
' If strFileType <> "II" And strFileType <> "MM" Then Close #1: Exit Sub
Get #1, , Temp1 '版本号废弃
Get #1, , iffsetIFD '获取第一个IFD的偏移量
Seek #1, iffsetIFD + 1 '设置下一个读出位置为第一个IFD的偏移量
Get #1, , iCountDE '获取第一个IFD中DE的数量
For i = 1 To iCountDE
MsgBox "dddd"
Get #1, , Temp1 '获取属性的标签编号
If Temp1 = 256 Then '如果是图像宽
Get #1, , Temp1 '废弃
Get #1, , Temp2 '废弃
Get #1, , lWidth
k = k + 1
ElseIf Temp1 = 257 Then '如果是图像高
Get #1, , Temp1 '废弃
Get #1, , Temp2 '废弃
Get #1, , lHeight
k = k + 1
Else '否则这些数据废弃
Get #1, , Temp1
Get #1, , Temp2
Get #1, , Temp2
End If
If k = 2 Then Exit For
Next i
Close #1
Debug.Print "Width:" & lWidth & vbCrLf & "Heigth:" & lHeight
End Sub
Function GetPictureWidth()
With CodeContextObject
GetPictureWidth = CInt(.[ImageControl].ImageWidth / 15)
End With
End Function
Function GetPictureHeight()
With CodeContextObject
GetPictureHeight = CInt(.[ImageControl].ImageHeight / 15)
End With
End Function
Sub mmm()
Dim strFile As String '文件名
Dim strFileType As String 'TIF标记
Dim iffsetIFD As Long '第一个IFD的偏移量
Dim iCountDE As Integer 'DE的数量
Dim lWidth As Long '图像宽度
Dim lHeight As Long '图像高度
Dim TTID As Integer
Dim T1 As Long
Dim T99 As String
Dim Temp1 As Integer, Temp2 As Long, i As Integer, k As Integer
Dim temp3 As Long
Dim temp4 As Integer
Dim TEMP5 As Long
Dim TEMP6 As Long
Dim g1 As Integer
Dim G2 As Integer
Dim g3 As Integer
Dim g4 As Integer
Dim g5 As Integer
Dim g6 As Integer
Dim g7 As Integer
Dim g8 As Integer
Dim g9 As Integer
strFile = "C:\1.05-1.25.tif"
Open strFile For Binary As #1
strFileType = String(2, 0)
Get #1, , strFileType '获取TIF标记
If strFileType <> "II" And strFileType <> "MM" Then Close #1: Exit Sub
Get #1, , Temp1 '版本号废弃
Get #1, , iffsetIFD '获取第一个IFD的偏移量
Seek #1, iffsetIFD + 1 '设置下一个读出位置为第一个IFD的偏移量
Get #1, , iCountDE '获取第一个IFD中DE的数量
MsgBox iffsetIFD
'For i = 1 To iCountDE
For i = 1 To 21
Get #1, , TTID '获取属性的标签编号
If TTID = 256 Then '如果是图像宽
Get #1, , Temp1 '废弃
Get #1, , Temp2 '废弃
Get #1, , temp3 '废弃
'
'Get #1, , lWidth
k = k + 1
'MsgBox i & " " & TTID & " " & Temp1 & " " & Temp2 & " " & temp3
ElseIf TTID = 257 Then '如果是图像高
Get #1, , Temp1 '废弃
Get #1, , Temp2 '废弃
Get #1, , temp3 '废弃
'Get #1, , lHeight
k = k + 1
'c
ElseIf TTID = 282 Then '如果是图像高
Get #1, , Temp1 '废弃
Get #1, , Temp2 '废弃
Get #1, , temp4
MsgBox i & " " & TTID & " " & Temp1 & " " & Temp2 & " " & temp4
Seek #1, temp4
T1 = temp4
Get #1, , g1 '废弃
Get #1, , G2 '废弃
Get #1, , g3 '废弃
Get #1, , g4 '废弃
Get #1, , g5 '废弃
Get #1, , g6 '废弃
Get #1, , g7 '废弃
Get #1, , g8 '废弃
'MsgBox TTID & " " & Hex(T1) & "= " & Hex(g1) & " " & Hex(G2) & " " & Hex(g3) & " " & Hex(g4) & " " & Hex(g5) & " " & Hex(g6) & " " & Hex(g7) & " " & Hex(g8)
MsgBox TTID & " " & T1 & "= " & g1 & " " & G2 & " " & g3 & " " & g4 & " " & g5 & " " & g6 & " " & g7 & " " & g8
Else '否则这些数据废弃
Get #1, , Temp1
Get #1, , Temp2
Get #1, , temp3
'MsgBox i & " " & TTID & " " & Temp1 & " " & Temp2 & " " & temp3
End If
'If k = 2 Then Exit For
Next i
Close #1
MsgBox "width:" & lWidth & vbCrLf & "height:" & lHeight & TID & T99
End Sub