Foxtable(狐表)用户栏目专家坐堂 → [求助]获取照片的拍摄时间(VBA转全局代码)


  共有4637人关注过本帖树形打印复制链接

主题:[求助]获取照片的拍摄时间(VBA转全局代码)

帅哥哟,离线,有人找我吗?
hui986
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:495 积分:3437 威望:0 精华:0 注册:2012/3/29 21:15:00
[求助]获取照片的拍摄时间(VBA转全局代码)  发帖心情 Post By:2015/12/15 15:41:00 [只看该作者]

请问如何将以下VBA的转成狐表的全局代码命令

'获取照片的拍摄时间

Public Function FindPicDate(PicFile As String) As String
     Dim bytes() As Byte
     Dim sLine() As String
     Dim fSize As Long, ExifDate As Long
     Dim i As Long, d As Long
     Dim ff As Integer
     Dim Found   As Boolean
    
     ff = FreeFile
     fSize = FileLen(PicFile)
     
     If fSize > 1024 Then fSize = 1024
     ReDim bytes(0 To fSize)                           ‘狐表提示这句出错
     Open PicFile For Binary As #ff
         Get #ff, 1, bytes
     Close ff
       
     sLine = Split(StrConv(bytes(), vbUnicode), Chr$(0))
    
     For i = 0 To UBound(sLine)
         ExifDate = InStr(1, sLine(i), "xif")
         If ExifDate > 0 Then
             Found = True
             Exit For
         End If
     Next i
        
     If Found = False Then Exit Function
    
     For d = i + 1 To UBound(sLine)
         ExifDate = InStr(1, sLine(d), ":")
         If ExifDate > 0 Then
             FindPicDate = sLine(d)
             Exit For
         End If
     Next d
            
 End Function


 回到顶部
帅哥哟,离线,有人找我吗?
hui986
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:495 积分:3437 威望:0 精华:0 注册:2012/3/29 21:15:00
  发帖心情 Post By:2015/12/15 15:42:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/15 15:56:00 [只看该作者]

汗,哪有这么那么麻烦

 

http://www.foxtable.com/help/topics/2707.htm

 


 回到顶部
帅哥哟,离线,有人找我吗?
hui986
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:495 积分:3437 威望:0 精华:0 注册:2012/3/29 21:15:00
  发帖心情 Post By:2015/12/15 18:10:00 [只看该作者]

拍摄时间跟以下的是不同的

Output.Show("文件创建时间:" & ifo.CreationTime)

Output.Show("上次修改时间:" & ifo.LastWriteTime)

Output.Show("上次访问时间:" & ifo.LastAccessTime


 回到顶部
帅哥哟,离线,有人找我吗?
hui986
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:495 积分:3437 威望:0 精华:0 注册:2012/3/29 21:15:00
  发帖心情 Post By:2015/12/15 18:13:00 [只看该作者]

拍摄时间,不会因为文件修改而改变的

 


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20151215181142.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
hui986
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:495 积分:3437 威望:0 精华:0 注册:2012/3/29 21:15:00
  发帖心情 Post By:2015/12/15 18:17:00 [只看该作者]

读取Exif信息的类
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:exifreader.cls.txt

[此贴子已经被作者于2015/12/15 18:18:44编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/15 18:36:00 [只看该作者]

直接获取

 

Dim img As Image = Image.FromFile("d:\camera.jpg")
Dim pt As PropertyItem() = img.PropertyItems
For i As Integer = 0 To pt.Length - 1
    Dim p As PropertyItem = pt(i)
    Select Case pt(i).Id
        Case &H132
            ' 拍照时间
            Dim s As String = System.Text.Encoding.ASCII.GetString(p.value)
            msgbox(s)
    End Select
Next


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/15 18:38:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
hui986
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:495 积分:3437 威望:0 精华:0 注册:2012/3/29 21:15:00
  发帖心情 Post By:2015/12/15 20:13:00 [只看该作者]

非常感谢大红袍,基本是这个方法,不过这个取值,

我遍历ID显出来的值是有拍摄日期的,就是不知这个是什么ID

 


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20151215200720.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20151215201014.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
hui986
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:495 积分:3437 威望:0 精华:0 注册:2012/3/29 21:15:00
  发帖心情 Post By:2015/12/15 20:18:00 [只看该作者]

Dim img As Image = Image.FromFile("I:\学校照片.jpg")
Dim pt As PropertyItem() = img.PropertyItems


For i As Integer = 0 To pt.Length - 1
    Dim p As PropertyItem = pt(i)
    Dim s As String = System.Text.Encoding.ASCII.GetString(p.value)
    Output.Show( s & vbcrlf)
Next


 回到顶部
总数 11 1 2 下一页